「UIオートメーション」を使いこなす

Power Automate Desktop
「UIオートメーション」を使いこなす

UIとはUser Interfaceの略でユーザーとコンピュータをつなぐ装置や入力フォームなどを指します。マウスやキーボードはもちろん、画面上のボタンやテキストエリアなどもUIに含まれます。Power Automate Desktopの「UIオートメーション」アクションでは主に画面上のUI操作を自動化していきます。マウスとキーボードの自動化に関しては「マウスとキーボード」というアクションから実行できるので、そちらを利用ください。「UIオートメーション」の操作は種類が多く、メニューを開いてみると直下のアクションが13種類、更にプルダウンメニューが3種類用意されています。このページでは直下のアクションについてひとつひとつ動きを確認していきましょう。

(なお、2022/7/29執筆時点でのアクション数であり、今後、利用できるオプションが増える可能性があります。)

1. ウィンドウ コンテンツを待機

ウィンドウコンテンツを待機アクション

最初に「ウィンドウ コンテンツを待機」というアクションについて見ていきましょう。これによってウィンドウが指定した状態になるまでRPAの動きを待機させることができます。アクションを追加して設定画面を開いてみましょう。「ウィンドウが次の状態になるまで待機」というアクションでどういう状態になるまで待機させるか選択できます。

ウィンドウコンテンツを待機設定画面

実際に動かしながら選択肢の動きを確認してみましょう。例えば、「UI要素を含まない」を選択した時、下段にある「UI要素」という所から対象とするUI要素を選択します。テキストボックス右側にあるプルダウンメニューを開くと、「UI要素の追加」というボタンが現われます。それをクリックすると、デザイン画面がなくなり、下図のように「UI要素ピッカー」という画面が現われ、画面上のUI要素の上にマウスを置いた時に、赤い線で囲ってくれるようになります。アクションの対象としたいUI要素の上にマウスを持っていったら「Ctrl」を押したままピッカー画面にドラッグしてください。これでUI要素を指定できます。今回はグーグルの画面を開いて、検索ボックスをUI要素として設定しています。

UI要素を取得キャプチャ画面

タイムアウトエラーをONにすると、指定した秒数までにウィンドウが設定した状態にならなければ、エラーを起こすようにできます。

設定が完了したら保存して実行してみましょう。この時、グーグルを開いた状態で実行している場合はRPAがアクション部分で停止し、閉じた状態で実行したらスルーされます。ちなみに、グーグルを開いた状態で実行し、途中でグーグルを閉じた場合はその閉じた時点からRPAは再開されます。また、閉じる時にウィンドウを削除する必要はなく、最小化などをして、画面上からなくなるだけで、動きは再開します。ただし、画面上に他のウィンドウを重ねて見えなくしただけではまだ存在していると認識されます。

同様に「UI要素を含む」にした場合は、指定したUI要素が画面上に現れた時に動きを再開します。「テキストを含む」や「テキストを含まない」はUI要素を指定したテキストが置き換えているだけで他は同じ動きをします。

2. ウィンドウが次を含む場合

ウィンドウが次を含む場合

次に「ウィンドウが次を含む場合」アクションについて見ていきましょう。このアクションではウィンドウの状態を条件にして命令を分岐させることができます。「Else」アクションも一緒に使うことができ、条件を満たさなかった場合の動きも別途決めることができます。

設定画面ではまず条件の内容を選択しますが、こちらは今回「UI要素を含む」とします。選択肢はコンテンツを待機させる時と変わりません。「UI要素の状態を確認する」をONにすると、新しく状態が無効か有効か選ぶことができます。今回は無効を選択します。

ウィンドウが次を含む場合設定画面

次にUI要素を選んでいきましょう。「コンテンツを待機」させた時と同じようにテキストボックス右側のプルダウンメニューから新しくUI要素を追加していきましょう。今回はグーグルホーム画面の中央にある検索ボックスを選択しました。

UI要素を取得キャプチャ画面

さて、設定が終わったらグーグルの画面を開いた状態で実行してみましょう。メッセージが表示されなければ成功です。というのも、今回は「UI要素の状態を確認」しており、設定が無効になっているので、グーグルホーム画面の検索ボックスが入力できないなど無効になっていない限りメッセージは表示されません。試しに設定を有効にしてもう一度実行してみてください。今度は下図のようにメッセージが表示されるはずです。

実行結果

3. デスクトップを使用する

デスクトップを使用する

「デスクトップを使用する」アクションの動きを確認しましょう。このアクションは指定したUI要素を「左クリック」「右クリック」「ダブルクリック」のいずれかをさせることができます。

デスクトップを使用する設定画面

設定画面では「UI要素」と「クリックの種類」、そして詳細メニューから「タスク バーを左クリックしたら新しいアプリケーションを起動」するかどうかを選べます。今回、UI要素はタスクバーにあるグーグルChromeを、クリックは左クリックをするように指定しています。また詳細で「新しいアプリケーションを起動」するように設定しています。ここがONになっていると既にそのアプリを実行している時、新たにアプリを開いてくれますが、OFFの場合は既に実行しているアプリを開きます。

UI要素を取得キャプチャ画面

では、実際に設定を保存して実行してみましょう。確かに新たなChrome画面が立ち上がりました。

実行結果

4. 画像が存在する場合

画像が存在する場合

「画像が存在する場合」アクションでは設定時にキャプチャした画像が存在するかどうかの条件分岐を行わせることができます。Elseアクションを追加する時で条件が成立しなかった時の命令も決めることができます。

アクションを追加すると下図のような設定画面が現われます。パラメータが多いですが、ひとつひとつ確認していきましょう。

画像が存在する場合設定画面

「画像が存在する場合」からは画像が存在する場合に真とするか存在しない場合に真とするかを選ぶことができます。「画像」では「画像を選択してください」という所からキャプチャを取ることができ、キャプチャした画像が対象となるリストに追加されていきます。なお、一度キャプチャした画像は、対象リストから削除した場合ももう一度、「画像を選択してください」から選択することができます。「画像の検索先」では検索対象とする画面を画面全体とするか最前面にあるウィンドウだけにするか選択できます。「検索モード」ではサブ領域を設定でき、有効にすると、サブ領域を画面のX座標とY座標を指定することができます。「リストにある画像をすべて検索する」をONにすると、全ての画像がある場合のみ条件を満たし、OFFの時はどれかひとつでも画像があれば条件を満たします。許容値と詳細の画像照合アルゴリズムからはどれくらい画像と実際の画面とのずれを許容するかを選ぶことができます。

画像が存在する場合設定画面2

実際にグーグルのホーム画面を開いた上で下図のようにグーグルアイコンを条件に検索をかけてみましょう。

画像が存在する場合設定画面3

メッセージが表示されていれば成功です。

実行結果

5. ウィンドウでタブを選択

ウィンドウでタブを選択

続いて「ウィンドウでタブを選択」操作を見ていきます。このアクションではウィンドウ内の任意のタブを選択することができます。設定画面のパラメータはひとつでUI要素のタブを選択したら終了です。

ウィンドウでタブを選択設定画面

今回はWordファイルの挿入タブを選択してみましょう。なお、最初はホームタブを選択している状態です。

UI要素の取得キャプチャ画面

設定が完了したら実行してみましょう。下図のようにホームタブから挿入タブに選択が変更されていたら成功です。

フロー実行前 フロー実行後

6. 画像を待機

画像を待機

「画像を待機」アクションの動きを見ていきましょう。このアクションでは設定した画像が出現するかなくなるまでRPAを停めることができます。

アクションを追加すると下図のような設定画面が現われます。ほとんどの設定は「画像が存在する場合」アクションと同じ設定なので説明はそちらに譲るとして、違うところだけピックアップして見ていきましょう。まず「画像が以下の状態になるまで待機する」では「表示される」か「消える」のどちらかを選択できます。「表示される」を選択されると、指定した画像が表示されるまでRPAは停止し、「消える」を選んだ場合は指定した画像が画面からなくなってから動きを再開します。下部にある「タイムアウト エラー」では待機する時間を指定できます。指定時間が過ぎたらエラーとなります。

画像を待機設定画面

7. ウィンドウのUI要素の上にマウス ポインターを移動する

マウスポインターを移動する

「ウィンドウのUI要素の上にマウスポインタ―を移動する」アクションで任意のUI要素にポインターを移動させることができます。

設定画面のパラメータはUI要素の指定1つだけです。移動させたいUI要素を選択しましょう。

マウスポインターを移動する設定画面

8. ウィンドウのUI要素をクリック

ウィンドウのUI要素をクリック

「ウィンドウのUI要素をクリック」アクションではただ移動させるだけではなく、その後にクリックさせることもできます。

設定画面では移動させる時と同様にしてクリックさせたいUI要素を選択します。続いてクリックの種類を選択してください。詳細メニューからはUI要素に対してデフォルトだと真ん中にポインターが移動してクリックするようになっていますが、右下にクリックしたり、左上をクリックしたりと調整できます。また更に細かく調整したい場合はオフセットを使うことでx座標に何ピクセル、y座標に何ピクセルと具体的な数字で移動先を調整することができます。

ウィンドウのUI要素をクリック設定画面

9. ウィンドウ内のメニュー オプションを選択

メニューオプションの選択

「ウィンドウ内のメニュー オプションを選択」の動きを見ましょう。こちらを利用すると、指定したウィンドウのメニューを選択することができます。想像がつきにくいと思うので、実際に動かして動きを確認していきましょう。

アクションを追加すると設定画面が開きます。パラメータはひとつ選択したいメニューを選ぶだけです。

メニューオプションの選択設定画面

今回は下図のようにメモ帳のヘルプメニューにある「ヘルプの表示(H)」を選択しました。

ヘルプ表示例

選択が終わったら設定を保存して実行しましょう。下図のように新しいブラウザタブが開いて、メモ帳に関するヘルプが検索されていれば成功です。(H)」を選択しました。

実行結果

10. UI要素をウィンドウ内にドラッグ アンド ドロップ

UI要素をウィンドウ内にドラッグアンドドロップ

「UI要素をウィンドウ内にドラッグ アンド ドロップ」を使うと、指定したUIをドラッグして指定した別のUIにドロップさせることができます。

設定はとても簡単でドラッグ元のUIとドロップ先のUIを指定するだけです。

UI要素をウィンドウ内にドラッグアンドドロップ設定画面

今回、ドラッグするのは、「ピクチャ」に入っている「dog.jpg」にしました。

ドラッグ元

一方、ドロップ先は「test」フォルダを指定しています。

ドロップ先

設定が保存出来たら実行してみましょう。元あったフォルダから「test」フォルダに画像が移動できていたら成功です。

実行結果

11. ウィンドウ内のツリー ノードを展開/折りたたむ

ツリーノードを展開/折りたたむ

「ウィンドウ内のツリー ノードを展開/折りたたむ」を見ていきましょう。このアクションを使うことでエクスプローラーの左側のツリー部分を開いたり閉じたりできます。

エクスプローラでの例

設定画面では4つのパラメータを設定します。「UI要素」では展開/折りたたみたいUI要素を選択します。その後のフォルダーパスでは続きのパスを記述することで指定したUI要素以下のフォルダを任意の先まで展開させることができます。ただし、折りたたみ動作の場合は、フォルダーパス先のフォルダしか折りたたんでくれなかったので、展開で使用するように想定されているのかもしれません。正規表現を使用したい場合は「正規表現を使用する」をONにしてください。最後に「操作」で展開か折りたたむかを選択したら終了です。

ツリーノードを展開/折りたたむ設定画面

上記設定でRPAを動かすと下図のようにUI要素で指定されたフォルダからフォルダーパスで指定したフォルダまで展開されます。

実行前 実行後

12. ウィンドウが次の条件を満たす場合

ウィンドウが次の条件を満たす場合

「ウィンドウが次の条件を満たす場合」を利用すると、指定したウィンドウの状態に応じて、条件を分岐させることができます。条件についてはウィンドウが開いているか閉じているか、フォーカスされているかいないかの4択でそれほど難しくはないのですが、ウィンドウの取得の方法がやや難解です。ここではウィンドウの取得の仕方に焦点を当てて解説していきます。

ウィンドウが次の条件を満たす場合設定画面

「ウィンドウのUI要素ごと」は今までと同じようにUI要素を指定したらOKです。やっかいなのは残りの2つです。「ウィンドウのインスタンス/ハンドルごと」を利用するにはあらかじめウィンドウインスタンスを生成しておく必要があります。これには下図の「ウィンドウの取得」アクションを先に実行する必要があります。このアクションを追加することにより、「AutomationWindow」という変数にインスタンスが格納されるので、それを指定することができるようになります。

ウィンドウインスタンスの取得

次に「タイトルやクラスごと」にウィンドウを取得する方法を考えましょう。まずウィンドウのタイトルとは下図でいう「test.txt – メモ帳」です。画面上にあるウィンドウタイトルは設定画面を開く段階でPower Automate Desktopに取り込まれるので、選択したいウィンドウを開いて設定画面を開いてみてください。

ウィンドウタイトル例

同じタイトルが2つ以上ある場合は、ウィンドウにあるクラスによって見分けていくことになります。クラスというのは一体何でしょうか。HTMLやCSSを勉強した方ならわかると思いますが、UI要素を指定する時、内部ではセレクターと呼ばれるものを適切に設定することで、UI要素を取得しています。このセレクターの中にはクラスという属性が含まれていることがあり、それを見分けるための目印にしているという訳ですね。じゃあ、実際にUI要素のクラスはどこで確認できるのでしょうか。下図のように画面最右部にある赤く囲んでいるアイコンをクリックすると、取得したUI要素一覧を見ることができます。

取得UIリスト

UI要素をクリックすると、詳細を見ることができます。下図のように詳細画面の属性という項目の中にClassが確認できると思います。この値を選択することでUI要素を見分けることができるようになります。ただし、Class自体は必須の属性ではなく、場合によってはないこともあります。その時はクラスを条件に使うことはできません。

取得UI詳細

以上、ややこしい条件ではありましたが、適切にフローが設定できた場合、条件が真の時は下図のようにメッセージが表示されます。ご自身でも色々試して動きを確認されてみてください。

実行結果

13. ウィンドウを待機する

ウィンドウを待機する

最後に「Desktop 最後に「ウィンドウを待機する」アクションを追加していきましょう。このアクションを利用すると、指定したウィンドウが「開く」か、「閉じる」か、「フォーカスされる」か、「フォーカスがなくなる」までRPAの実行を停めることができます。

アクションを追加すると、設定画面が開きます。「ウィンドウの検索」では、ウィンドウの取得方法を「UI要素ごと」か「インスタンス」か「タイトルやクラスごと」から選択できます。詳しい設定方法は前項の「ウィンドウが次の条件を満たす場合」で解説しておりますので、そちらを参照ください。ただし、「タイトルやクラスごと」を設定する場合、前項とは別に「ウィンドウの選択」という項目が追加されています。こちらを利用すると、UI要素を追加するのと同じようにグラフィカルにタイトルとクラスを設定することができ、煩わしいクラスの確認をする必要がなくなるのでオススメです。

また、指定したウィンドウが開くまで待機する場合に限り、ウィンドウが開いた時にそのウィンドウにフォーカスを当てるかを指定できます。普段自分たちで操作するときは勝手に最前面にウィンドウが表示されますが、コンピュータが内部で開くときなどは明示的に指定することが必要な時もあります。最後にタイムエラーを設定するかどうか決めたら終了です。

ウィンドウを待機する設定画面

以上、「UIオートメーション」のアクションについての解説でした。このUIをユーザーと同じように使えるのがRPAの最も大きな強みのひとつと言っても過言ではありません。ぜひ使えるようになって自動化できる幅を広げていってください。

→「Power Automate Desktop」の他の操作も見る

執筆者プロフィール

プロフィール画像

伊藤 丈裕

(株)サムテックのシステムエンジニア。応用情報技術者資格保有。
27歳の時、営業から完全未経験で転職。開発とWebマーケティングを担当。得意言語はJavaとJavaScript。

タイトルとURLをコピーしました