「UIオートメーション~データ抽出~」を使いこなす

Power Automate Desktop
「UIオートメーション」を使いこなす~データ抽出~

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

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

1. ウィンドウの詳細を取得する

「ウィンドウの詳細を取得する」アクションでは指定したウィンドウに関する情報を取得することができます。今回は下図のようにテスト用の画面を用意してみました。単純ではありますが、サイトタイトルと大見出し、文章とテキストボックス、テキストエリア、チェックボックス、ラジオボタン、送信ボタンを用意しています。このウィンドウを指定することで、どんな情報を取得できるか確認していきましょう。

設定画面のパラメータはウィンドウの指定と取得する情報の選択欄の2つです。ウィンドウは先ほど紹介したテスト画面を指定しています。

まず「ウィンドウ タイトル」を選択すると下図のように「テストです」という値を取得できました。これはタブタイトルで書かれていた文字ですね。タイトルを取得すると、大見出しではなく、タブに書かれていることを取得できるようです。

続いてテキストを取得した場合です。下図を見ていただいたらわかる通りですが、大見出しと段落文章、テキストボックスとテキストエリア、ボタンのテキストが取得できています。一方で、チェックボックスやラジオボタンのテキストは取得できていないのですべてを取得するわけではなさそうです。

「ウィンドウの場所をサイズ」を取得すると、テキスト値で4つの値を取得できます。順にウィンドウ左上のx座標、ウィンドウ左上のy座標、幅、高さを表しています。筆者のx座標とy座標がマイナスになっていておかしく感じるのはデュアルモニターにしているからです。

最後にプロパティの値を取得してみましょう。Chromeという値を取得していました。これは筆者が「Chrome」を使って画面表示させているからですね。Wordファイルを取得した時は「WINWORD」、Excelファイルを取得した時は「EXCEL」が表示されました。

2. ウィンドウにあるUI要素の詳細を取得する

続いて「ウィンドウにあるUI要素の詳細を取得する」アクションの動きを見ていきます。基本的には「ウィンドウの詳細を取得する」アクションと同じテスト画面で確認していきますが、今回は下図の通りテキストボックスの入力を無効にしています。

設定画面では2つのパラメータを調整します。ひとつはどのUIの情報を取得するか、もうひとつがどんな情報を取得するかです。取得する情報は「Own Text」「Exists」「Location and Size」「Enabled」の4つです。英語で書かれていますが、取得できる情報についてはウィンドウ全体と被っているところがあります。

まずは「Own Text」の動きを見ていきましょう。「Own Text」を使うと、指定したUIに書かれているテキストを取得することができます。テスト画面のテキストエリアを指定して実行すると、下図のようにテキストエリアに入力されていた文字を取得することができます。

「Exists」では指定したUIが存在するかどうかを確認することができます。テスト画面のテキストエリアを指定した後に画面からテキストエリアをなくして再描画させてみます。

この状態で実行すると、下図のように「false」の値を取得できます。テキストエリアを元に戻して再度実行すると、「true」が取得できます。

「Location and Size」では指定したUI要素の左上x座標と左上y座標、幅、高さの4つの値を取得できます。例えば、テスト画面のテキストエリアの値を取得してみると下図のようになります。デュアルモニターで取得しているのでマイナス値が出たりしますが、正しく4つの値を取得できています。

最後に「Enabled」の動きを解説します。これを利用すると、指定したUIが有効かどうかを調べることができます。今回、テスト画面ではテキストのテキストボックスを無効にしています。なので、テキストボックスを選択して実行すると、下図のように「false」が返ってきます。一方、テキストエリアは有効なので、テキストエリアを指定した場合の返り値は「true」になります。下図はテキストボックスを指定した場合の返り値です。

3. ウィンドウにある選択済みチェック ボックスを取得する

「ウィンドウにある選択済みチェック ボックスを取得する」アクションではチェックボックスにチェックが入っている項目の名前を取得することと、チェックボックスにチェックが入っているかどうかを調べることができます。今回は下図のように「テスト1」「テスト2」「テスト3」の3つのチェックボックスを用意し、うち「テスト1」と「テスト3」にはチェックを入れています。

設定画面ではUI要素の指定と操作する方法を選択することができます。複数チェック済の時、チェック済みかどうかの操作をすると1つでもチェックがついていたら「true」が返却されます。個別にどの値がtrueでどの値がfalseかを返してくれるわけではないため、複数のチェックボタンを指定した時は名前を取得し、チェック済みかどうかの確認はひとつだけチェックボタンを取得した時に利用するようにすると良いでしょう。

まずは「グループ内の選択済みチェック ボックスの名前を取得する」動きを見ていきましょう。指定するUIは3つのチェックボックスすべてです。実行すると下図のようにチェックが入っているチェックボックスをリスト形式で取得することができます。

次に「チェックボックスの状態を取得する」を選択した場合の動きを確認しましょう。今回、UIは「テスト2」を指定しました。「テスト2」はチェックが入っていないので、実行すると下図のように「False」の値を取得することができます。「テスト1」や「テスト3」を指定したり、「テスト2」にチェックを付けて実行した場合は「True」の値を取得できます。

4. ウィンドウにある選択済みラジオ ボタンを取得する

「ウィンドウにある選択済みラジオ ボタンを取得する」アクションではラジオボタンにチェックが入っている項目の名前を取得することと、指定したラジオボタンにチェックが入っているかどうかを調べることができます。今回は下図のように「テスト4」「テスト5」「テスト6」の3つのラジオボタンを用意し、「テスト6」にチェックを入れています。

設定画面ではUI要素の指定と操作する方法を選択することができます。

まずは「グループ内の選択済みラジオボタンの名前を取得する」動きを見ていきましょう。指定するUIは3つのラジオボタンすべてです。実行すると下図のようにチェックが入っているラジオボタンを取得することができます。なお、チェックボックスの場合と異なり、通常ラジオボタンはひとつのグループにつき、ひとつしかチェックできないので、リスト形式にはなりません。

次に「ラジオボタンの状態を取得する」を選択した場合の動きを確認しましょう。今回、UIは「テスト4」を指定しました。「テスト4」はチェックが入っていないので、実行すると下図のように「False」の値を取得することができます。「テスト6」を指定したり、「テスト4」にチェックを付けて実行した場合は「True」の値を取得できます。

5. ウィンドウからデータを抽出する

「ウィンドウからデータを抽出する」を使うと、指定したウィンドウから取得したデータをExcelか変数に格納することができます。設定画面のパラメータは2つで、ウィンドウの指定と、データをExcelで保存するか、変数で保存するかを選択するだけです。

今回は下図テスト画面を指定してみます。

Excelに保存した場合は、下図のようになりました。すべてのテキストがA1セルに詰め込まれていますね。また、チェックボックスやラジオボタンのテキストは取得できないようです。一方、テキストエリアやテキストボックスのテキストは取得可能です。

変数に保存した場合は下図の通りです。すべてのテキストがテキスト値としてひとつの変数に保存されます。

6. UI要素のスクリーンショットを取得する

「UI要素のスクリーンショットを取得する」アクションを利用すると指定したUIのキャプチャを取ることができます。設定画面のパラメータは2つでキャプチャしたいUIの指定と、保存方法の選択です。保存方法はクリップボードとファイルの2つから選べて、ファイルを選択した場合はどのファイルに保存するかとファイル形式を指定する必要があります。実行した時に、クリップボードを保存先にした場合は「Ctrl + V」で貼り付けができたら、ファイルを保存先にした場合は指定したファイルにキャプチャが保存されていたら成功です。

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

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

執筆者プロフィール

伊藤 丈裕

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