「マウスとキーボード」を使いこなす

Power Automate Desktop
「マウスとキーボード」を使いこなす

Power Automate Desktopでは「マウスとキーボード」というアクションから人がマウスを操作し、キーボードを叩いたりするのと同じように操作を行うことができます。これがRPAの大きな特徴のひとつであり、簡単にアプリケーション間の操作を実現できるのもこれが理由です。このページでは、具体的なアクションについてひとつひとつ動きを見ていきます。

(こちらは2022/7/6執筆時点での情報です。今後、選択可能なオプションが増える可能性があります。)

1. 入力のブロック

このアクションを使うことで、RPAを動かしている間、ユーザーのマウスやキーボードの操作をブロックすることができます。ブロックを解除する場合はトグルボタンをOFFにしてください。RPAを動かしているときにユーザーが別の操作をし、RPAに影響を与えるのを防ぐことができます。実際にこのアクションを使うには管理者権限でPower Automate Desktopを実行することが必要です。管理者権限がないとアクションを追加しても操作できるままなので注意してください。

入力のブロック設定画面

2. マウスの位置を取得します

実行することで、マウスの位置を取得できます。マウスの位置は2種類の方法で取得でき、1つは画面全体から取得する方法で、もう1つがデスクトップの1番前に表示されているウィンドウから取得する方法です。

「マウスの位置を取得します」設定画面

取得したマウスの位置は以下のようにx座標とy座標に分かれて、変数に格納されます。

「マウスの位置を取得します」変数取得

3. マウスの移動

このアクションで任意の位置にマウスを移動することができます。位置はx座標とy座標を指定します。また、「相対」という箇所から、画面全体から座標計算するか、実行時にフォーカスされているウィンドウから計算するか、実行時のマウスの位置から計算するか選ぶことができます。また「前の位置からマウスを移動します」という所から移動する速度を選択することができます。

「マウスの移動」設定画面

4. マウスを画像に移動します

「マウスを画像に移動します」アクションについて見ていきます。まずアクションを追加してください。そうすると、下図のような設定画面がポップアップします。移動する対象は「画像を選択してください」から選びます。「画像のキャプチャ」という所を押すと、画面をキャプチャできるようになります。移動したい画像のキャプチャを撮ってあげましょう。

「マウスを画像に移動します」設定画面

画像を選択すると、「マウスの移動先の画像」という所から選択した画像について確認できます。画像は複数選択することが可能です。「マウスの移動スタイル」では移動までの速さについて選ぶことができます。「発生回数」を増やすと、複数回移動できるようになります。また、移動後にクリックするように編集するトグルボタンもついています。

「マウスを画像に移動します」選択画面

より詳しく編集したい場合は「詳細」という箇所をクリックしてください。下図のように詳細情報を更に入力できるようになります。最初の「画像が表示されるまで待機します」というのはタイムアウトするまで待つようになります。1回目の操作で何かしらの画面を起動させて、2回目の操作で起動した画面に新しく表示された画像に移動したいときなどに使えます。デフォルトではONになっていて、OFFにすると「失敗タイムアウト」という項目もなくなります。「画像照合アルゴリズム」では基本と詳細の2つから選択できます。詳細を選ぶとより厳密に画像の判定を行えるようになりますが、処理のスピードが遅くなります。「許容値」という所でより詳細な数値を設定できますが、10という値が「画像照合アルゴリズム」の基本と同じ許容値です。「画像に対するマウスの相対位置」は画像のどの部分にマウスを置くかを画像全体を9分割した中から選ぶことができます。またオフセットのxとyで画像の位置から具体的に何ピクセル上下左右に動かすか細かな調整ができます。「画像の検索先」からは画面全体を選択するか、一番前にあるウィンドウの中から探すかを選択できて、検索モードでより詳細なサブ領域を選択できます。サブ領域を設定した場合、画像の検索先とサブ領域のどちらも満たした部分のみを検索することになるので、より検索範囲を絞りこむことができます。

「マウスを画像に移動します」詳細画面

5. 画面上のテキストにマウスを移動する(OCR)

このアクションではOCRで画面を読み取り、そこから読み取った画面から検索に一致するテキストにマウスを移動させることができます。OCRとはOptical Charcter Readerの略で、よく紙をスキャナで読み込んで画像化された文字をデジタル化するときに使われます。ただし、ここでは注意しなければならないことがあります。OCRの技術自体がまだ発展途上(特に日本語の認識能力は低いです。)で、読み取り段階で誤った認識をしてしまうことが多々あることです。例えば、Windows OCRを用いて下図左側の画像のテキストを読み込んでみたところ、右側のような答えを返してきます。かなり間違っているのがわかるはずで、この右側の認識でRPAはテキストを探すため、精度は低くなってしまいます。(2022年7月5日現在の精度でOCRの能力は日に日に向上しているので、将来的には改善が予測されます。)

Windows OCR比較画面

以上の理由から、現状は他のアクションで代替できる場合は他のものを利用された方が良いと思いますが、アルファベットであれば精度がある程度あるので、使い方を紹介していきます。

アクションを追加すると以下の設定画面が現われます。最初に「OCRエンジンの種類」を選択でき、利用できるOCRは先ほど紹介したWindows OCR含めて3種類あります。しかし、OCRエンジン変数は廃止予定ですので、残り2つのどちらかにすると良いでしょう。次に「検索するテキスト」を記述します。「正規表現」をONにすると、検索するテキストの中で正規表現に基づく記述ができるようになります。「発生回数」を1回にすると、最初に一致するテキストを見つけた段階で操作を終了します。「テキストの検索先」では画面全体か、一番前にあるウィンドウから探すかを選べます。「検索モード」ではサブ領域を指定して、検索範囲を絞りこむことができます。処理に時間がかかってしまう場合などに利用できます。「前の位置からマウスを移動します」でマウスの動くスピードを調整できます。

「テキストにマウスを移動する」設定画面

OCRエンジンの設定という所からOCRの言語設定が選択できます。多くの日本人の方はWindowsに日本語パックしかインストールされていないと思うので、日本語を選択しないとエラーになります。もちろん別途他の言語もインストールした場合は他の言語も利用可能です。Tesseractエンジンを利用する場合は、全ての言語で前準備を行う必要があります。

「テキストにマウスを移動する」エラー画面

詳細を表示すると、テキストの表示を待つかどうか、またその場合はタイムアウトするまでの秒数を選択することができます。次に、移動後にクリックすることができるかどうかを選択でき、デフォルトは移動するだけとなっています。最後にテキスト全体でマウスをどこに置くか、置いた後にどれくらい調整するかをオフセットXとオフセットYから編集することができます。

「テキストにマウスを移動する」詳細設定画面

マウスでテキストへの移動に成功すると下図のようにテキストの高さと幅、x座標とy座標がそれぞれ変数に代入されます。

「テキストにマウスを移動する」実行後の取得変数

6. マウスクリックの送信ダイアログを表示

「マウスクリックの送信」アクションを追加すると、設定画面が現われ、クリックの種類と何秒送らせてからクリックするかを選ぶことができます。デフォルトではOFFになっていますが、「マウスの移動」ボタンをONにすると、マウスを任意の場所に移動させてからクリックさせることができます。下図の通り、x座標とy座標、何を基準に座標を決めるか、移動する速さを指定して詳細を設定していきます。

「マウスクリックの送信」設定画面

7. キーの送信

「キーの送信」アクションからは実際に人がキーボードを叩くようにキーを送信することができます。アクションを追加すると設定画面が開きます。「キーの送信先」でどこにキーを送信するか選ぶことができます。デフォルトは一番前にあるウィンドウに送信する「フォアグラウンド ウィンドウ」となりますが、特定のUI要素に送信したり、既に取得したウィンドウインスタンスに送信したりすることなどできます。「送信するテキスト」からは実際に送信するテキストを入力できますが、その他にも暗号化することができたり、ファンクションキーなどの特殊キーやShiftさせたい場合の修飾キーなどは別途選択することができるようになっています。「キー入力の間隔の遅延」からはどれくらいキーとキーを送信する間隔を空けるかをミリ秒単位で決めることができます。「テキストをハードウェアキーとして送信します」をONにすると、実際にキーボードからキーを叩いた時に動作する動きの真似(エミュレート)しますよと解説されています。それ以上、詳しい公式の説明がないので、何とも言えないですが、おそらくOFFにしている場合は、同じ結果になるように動いてはいるけれども全く同じ動きをしている訳ではないということなのかもしれません。

「キーの送信」設定画面

8. キーを押す/離す

「キーを押す/離す」アクションからは「Ctrl」「Alt」「Shift」「Win」キーを押した状態を保持するか、キーを離すかを決めることができます。こちらは一度「キーを押す」アクションを実行した後に「離す」をセットで利用しないとRPAが動作し終わった後もキーを押した状態が続くので注意してください。実際、筆者が「Shift」キーと「Win」キーを押した状態を保持したまま処理を終了した時、RPAの動作が終わった後も「S」キーを押すだけでキャプチャを開くことができました。

「キーを押す/離す」設定画面

9. キーの状態を設定

「キーの状態を設定」では「CapsLock」「NumLock」「ScrollLock」の各ロックのON、OFFを切り替えることができます。CapsLockをONにすると大文字で入力されるようになり、NumLockをONにすると、テンキーがあるキーボードではテンキーで数字入力できるようになり、テンキーのないキーボードでは、「u、i、o」の入力が「4、5、6」に、「j、k、l」の入力が「1、2、3」になります。ScrollLockはExcelなどの一部のアプリで使用できる機能です。

「キーの状態を設定」設定画面

10. マウスを待機する

「マウスを待機する」アクションではマウスのポインターに応じて、RPAの実行を中断することができます。「マウスポインターが次に変わるのを待機します」という所では「次に変わる」と「無効になる」を選ぶことができます。「次に変わる」を選ぶと、ポインターが次の選択欄にある「マウスポインタ―」で指定したポインターになるまでRPAの実行を中断します。「無効になる」を選ぶと「マウスポインタ―」で指定したポインターでなくなるまでRPAの実行を中断します。「タイムアウトエラーで失敗しました」をONにすると、変化を待つ時間を指定できます。

「マウスを待機する」設定画面

11. キーボード識別子を取得する

「キーボード識別子を取得する」というアクションからはキーボードを識別するための値を取得することができます。キーボードには言語ごとに種類があり、それぞれに数字が割り振られています。アクションから識別子を取得して表示すると下図のように「68224017」と表示されました。これを16進数表記に変更すると「4110411」と表示されます。下記、公式サイトを見たらわかりますが、識別子は16進数で記述されており、日本語キーボードの識別子が「411」、入力方式エディターが「0411」となっているので、両方を合わせた値を取得できているように思えます。

「キーボード識別子」の値

12. ショートカットキーを待機する

このアクションを利用することで、指定したショートカットキー押すまで、RPAの動きを止めることができます。ショートカットキーは1つではなく、複数登録できます。その場合、登録したいずれかのショートカットキーを押せば、処理が再開されます。登録した時のショートカットキーの番号が押された時に変数に代入されます。また「タイムアウト時にフローの実行を続行する」をONにしないとショートカットキーを押さない限りいつまでも待機し続けます。

「ショートカットキーを待機する」設定画面

以上、「マウスとキーボード」アクションについての解説でした。このアクションを使いこなすことによって人がパソコンを操作するのと同じようにRPAがマウスやキーボードを操作できるようになります。RPAの大きな長所のひとつなのでぜひ色々試してみて自分のものにしてみてください。

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

執筆者プロフィール

プロフィール画像

伊藤 丈裕

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

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