Power Automate Desktop(PAD)で、指定したウインドウを最前面に持ってくる方法を紹介します。
PADでフローを実行しようとしたときに、他の開いているウインドウが邪魔をしてボタンが押せなかったり、テキストエリアに入力ができなかったりすることがあります。
初心者の方にも分かるよう詳しく説明していきますので、ぜひ参考にしてみてください。
「ウインドウにフォーカスする」アクション
「ウインドウにフォーカスする」アクションでは、指定したインスタンスを最前面に表示します。
項目 | 概要 |
---|---|
ウインドウの検索モード | ウインドウのUI要素ごと |
ウインドウのインスタンス/ハンドルごと | |
タイトルやクラスごと |
ウインドウの検索モードには3種類あり、それぞれ指定内容が異なります。
以下で詳しく解説します。
ウインドウのUI要素ごと
「ウィンドウのUI要素ごと」は、ボタンやテキストボックスなどの部品にフォーカスしたい場合に使います。
「UI要素」とは、テキストボックスやボタンなどの、アプリケーションを構成する部品のことです。
よって、「ウィンドウ」には、フォーカスしたい部品を設定します。
UI要素の追加
「UI要素の追加」を押すと、「UI要素ピッカー」というものが表示されます。
これが表示されている状態で対象のページを開くと、UI要素にカーソルを当てると赤枠で囲まれます。(うまく囲まれない場合は、最初からやり直してみてください)
今回の例では、Yahoo!JAPANホームページのテキストボックスにフォーカスを当てたいので、テキストボックスが選ばれた状態でCtrlを押しながらクリックします。
すると、「ウィンドウ」の部分に値が入ります。
これでフローを実行すると、Yahoo!JAPANが開き、テキストボックスにカーソルが当たります。
ウインドウのインスタンス/ハンドルごと
「ウィンドウのインスタンス/ハンドルごと」は、ウインドウ自体を選択したい場合に使います。
「ウィンドウ インスタンス」には、開きたいブラウザやアプリケーションなどを設定します。そのため、このアクションの前に、対象のインスタンスが生成されている必要があります。
たとえば、Chromeのウインドウを最前面に持ってきたい場合には、その前に「新しいChromeを起動する」アクションを追加しておきます。
これを実行すると、Chromeが最前面で開くようになります。
タイトルやクラスごと
「タイトルやクラスごと」は、ウインドウのタイトルを指定して最前面に持ってきたいときに使用します。
表示されたアプリ一覧から選ぶ
「ウインドウタイトル」のプルダウンを押すと、現在起動中のアプリケーションが一覧で表示されます。
たとえば、「タイトルなし – ペイント」を開く場合、以下のように設定します。
これで実行すると、「タイトルなし – ペイント」が開きます。
ペイントアプリが複数立ち上がっている場合でも、指定したウインドウのみが開きます。
ウインドウ クラスとは?
ウインドウクラスとは、ウインドウを区別するためのクラスのことです。たとえば、「ペイント」という同じアプリケーションであっても、クラス名はそれぞれ異なっています。
一見、同じクラス名のように見えますが、選択するものによって開かれるペイントアプリは異なります。
ウインドウの選択
最前面に表示したいウインドウを、手動で選択することも可能です。
「ウィンドウの選択」を押します。
すると、「ウィンドウ」という赤枠が表示されます。この状態で、最前面に表示したいウインドウを開き、Ctrlを押しながらクリックします。
これで、選択したウインドウが最前面に表示されるようになります。
結局、どれを使えばいいの?
「3種類あるけど、どれを使えばいいの?」という方に向けて、大まかな指標をまとめます。
- ウインドウのUI要素ごと:WebサイトのUI要素にフォーカスしたいとき
- ウインドウのインスタンス/ハンドルごと:フロー内で開いたページやアプリを最前面に表示したいとき
- タイトルやクラスごと:予め開いているページやアプリを最前面に表示したいとき
Webページやアプリケーションの最前面化は、2・3どちらでも実現できますが、フロー内で開いたページに対して最前面化したい場合には2を使うことをおすすめします(アプリを開くアクションにて、必ずインスタンスが作られるのでエラーが起こることがまずないため)。
トラブルシューティング
発生しうるエラーは以下の通りです。
ウィンドウが見つかりません
「Window wasn”t found」は、指定したウインドウが見つからなかったときに発生するエラーです。
ウィンドウの検索モードを「タイトルやクラスごと」にしている場合、フロー実行時にウインドウが既に閉じられていたり、ウインドウ名が変わってしまったり、同じウインドウ名が複数存在する場合に発生します。
このエラーが発生した場合は、ウインドウの検索モードを変更して再度試してみて下さい。
ウィンドウにフォーカスできません
このエラーは、指定されたウィンドウをフォーカスするときに問題が発生した場合に起こります。
(私の環境ではこのエラーを再現できませんでした)
非インタラクティブ モードでウィンドウ関連のアクションを実行できません
非インタラクティブモード=バックグラウンドモードで実行した際発生するエラーです。
PADのアクションのなかには、バックグラウンドプロセスで起動できるものがあります。例えばExcelの起動はバックグラウンドでの起動が可能です。
バックグラウンド起動すると、PCの画面上にはExcelが表示されず、プロセスとして存在している状態となります。
以下は、上記のアクションを実行したあとのタスクマネージャーの状態です。画面ありで起動したExcelとは別で、プロセスだけ起動していることが分かります(PADのフローを2回実行したので、2個プロセスが作成されています)
上記のように、最前面に表示したいのに画面自体が生成されていない場合、このエラーが発生することがあります。
まとめ
今回は、Power Automate Desktop(PAD)で、指定したウインドウを最前面に持ってくる方法について紹介しました。
画面を最前面化しておくことで、ショートカットキー(キーの送信)による操作だったり、画面のキャプチャだったりと、あらゆる場面で思わぬエラーを防ぐことができます。
もし、本記事のなかで分からないことや、「こんな処理を実現したいんだけど、どうやるの?」といった質問などがありましたら、お気軽にコメントいただければと思います。問い合わせフォームからご連絡いただいてもかまいません。
参考:Microsoft Power Automate ウィンドウにフォーカスする
コメント