Power Automate Desktop(PAD)を使っていて、こんな疑問を感じたことはありませんか?
「画像が存在する場合」と「ウィンドウが次を含む場合」って、結局何が違うの?
実はこの2つのアクションは、動作の仕組みがまったく異なります。
選び方を間違えると、処理の精度や速度に大きな影響が出る可能性があります。
本記事では、PAD初心者の方にも分かりやすく、両者の違いと具体的な注意点、使い分けのコツまで解説します。
目次
✅ 結論:根本的な仕組みが違う!
| 比較項目 | 画像が存在する場合 | ウィンドウが次を含む場合(UI要素) |
|---|---|---|
| 判定方法 | 画像(ピクセル)照合 | UI要素(セレクタ)探索 |
| 精度 | DPIや色変更に弱い | レイアウト変更に比較的強い |
| 表示条件 | 画面上で見えている必要あり | 一部非表示でも取得可(アプリ依存) |
| 速度 | 探索範囲が広いと遅くなる | 通常は高速 |
| 対応アプリ | ゲーム、キャンバスUI、画像ベースUI | ブラウザ、業務アプリ、WinForms等 |
| メンテナンス性 | テンプレ画像の更新が必要 | セレクタの修正や調整が必要 |
🔍「画像が存在する場合」アクションの仕組みと注意点
🔧 どう動く?
- あらかじめ用意した画像テンプレートと、画面上のピクセルを比較
- **類似度(しきい値)**が一定以上なら「見つかった」と判定
⚠ 主な注意点
| 注意点 | 内容 |
|---|---|
| 探索範囲を絞る | ウィンドウ単位や矩形指定で誤検出と処理時間を削減 |
| DPI/スケーリング | 実行端末の表示スケールは100%推奨 |
| テーマ・モード差 | ダークモード/ライトモードなど、見た目が変わるとNG |
| 類似画像問題 | 似た形のアイコンは誤認識の原因。特徴的な部分だけをテンプレに |
| 複数画像の順序 | 上から順に認識→最初に一致した画像で処理終了 |
| ウィンドウ状態 | 最前面・可視状態が前提(最小化NG) |
🔍「ウィンドウが次を含む場合」アクションの仕組みと注意点
🔧 どう動く?
- アプリ内部の構造(UIツリーやDOM)を探索して、要素の存在を判定
- 「AutomationId」「Name」「階層構造」などを使って対象を特定
⚠ 主な注意点
| 注意点 | 内容 |
|---|---|
| 動的タイトル | ウィンドウ名に変動がある場合、ワイルドカード/正規表現を使う |
| UI要素セレクタ | 固定要素(AutomationId, Roleなど)を使い、階層で安定性を保つ |
| フレーム/タブ構造 | iframeやコンテナの切替が必要なケースあり |
| 表示待ち | UIが描画される前に処理が走らないよう、Appear/Timeout待機を組み込む |
| リモート環境 | 仮想化ではUI要素が取れないことも。その場合は画像で補完 |
| フォーカス依存 | 一部アプリではフォーカスが必要。アクティブ化アクションを併用する |
🧠 実務での使い分けガイドライン
どちらを使うか迷ったときは、以下を参考にしてください。
✅ まずはUI要素で試す!
- セレクタが取れるなら、UI要素アクションで構築するのがベスト
- 処理速度・安定性・保守性すべてで有利
🔄 UI要素が取れない箇所のみ画像認識で補完
- 例:ゲームUI、リモートデスクトップ、キャンバスアプリなど
- 画像とUI要素をハイブリッドで使うのが王道
🛠 初期化ルーチンを忘れずに!
- ウィンドウを最大化
- 表示スケールを100%に固定
- ログイン状態、テーマ、フォントなどを毎回同じに保つ
💥 よくあるトラブルと回避策
❌ 「見えてるのに画像が見つからない」
- 原因:スケーリング差・アンチエイリアス・半透明UI
- 対策:再キャプチャ、小さめにトリミング、探索範囲を限定
❌ 「別のアイコンで誤認識される」
- 原因:似たようなアイコンの存在
- 対策:特徴的なパーツをテンプレに/上位は厳しめ画像、下位は甘め画像に
❌ 「UI要素が取れるのに認識されない」
- 原因:iframeや非表示状態、描画未完了
- 対策:コンテナ切替と表示待機アクションを併用する
✅ 最小構成チェックリスト(初心者向け)
| 項目 | 設定例 |
|---|---|
| PAD起動直後 | ウィンドウ最大化、スケール100%、テーマ統一 |
| UI要素取得 | Recorderで確認、取れなければ画像へ切替 |
| 画像設定 | 矩形で範囲指定、しきい値調整、リトライ3回 |
| UI要素設定 | AutomationId+階層で安定化、待機アクション併用 |
❓ よくある質問(FAQ)
Q1. 画像認識とUI要素、どっちが優先?
UI要素が使えるなら、UI要素が優先です。理由は「速くて安定していて、保守が楽」だからです。
Q2. セレクタが動的で毎回変わるのですが?
AutomationIdや階層、正規表現を組み合わせて安定セレクタに改善しましょう。
Q3. リモートデスクトップや仮想環境で要素が取れません…
その場合は、**画像認識を活用しましょう。**テンプレ作成時のスケーリングや解像度に注意です。
Q4. UI要素も画像も、うまく動かないときは?
画面の初期状態やテーマがバラバラだと認識されません。実行環境の“標準化”を徹底してください。
