様々な条件のアクション

初級編ではIf-Else if-Elseアクションについて学びました。
PADにはその他にも、Swicth-Caseアクション、画面の状態を判定するアクションなど、様々なアクションが用意されています。
これらのアクションを組み合わせることで、より見やすく、またより高度ななフロー開発を行うことが可能です。

Switch-Case

Swicth(スイッチ)- Case(ケース)アクションは、1つの対象に対して複数の条件を設定することが出来ます。
例えば、入力された都道府県に対し、何地方なのかを判定したい場合、Ifアクションを用いると、最初のオペランド(最初に設定する条件)に毎回都道府県を設定する必要があります。
Switchアクションでは、都道府県という対象をあらかじめ指定し、Caseアクションで条件を指定する為、その手間が無くなり、非常に見やすく設定することが可能になります。

それでは実際に使ってみましょう。
まずは、都道府県を入力するために「リストから選択ダイアログを表示」アクションを配置し、任意の都道府県を設定します。(1つ関係のないデータを追加してください)

次にSwitch アクションを配置し、先ほどのアクションで選択された値(%SelectedItem%)を選択します。

Switch アクションの中に、Case アクションを配置し、条件を指定します。

Caseアクション の下にメッセージを表示アクションを配置し、何地方なのかを表示します

同様の手順でCase アクションを追加していきます

次にDefault Caseアクションを設定します。(必ず末尾{Endの上}に追加する必要があります)
Defaulr Caseアクションでは、上記Caseアクションに該当しなかったものが処理されます。

同様にメッセージを追加します

動作を確認してみましょう。

Ifアクションでは他の条件を加えることも出来るため、一ヶ所だけ条件が違うものを設定することも出来てしまいます。
そうすると、作っているときには問題が無くても、後から見直した時にそれに気づかず不具合の原因になってしまう可能性があるため、条件の対象が同一の場合は、Switch-Caseアクションを使用するようにしましょう。

状態を判定するアクション

PADには、ウィンドウが開いているか(閉じているか)、ファイルが存在するか(存在しないか)など、様々な状態を判定するアクションが用意されています。
これらのアクションを組み合わせることで、より柔軟なフロー開発を行うことが可能です。
例えば、集計したい日付のファイルが存在していない場合は現場担当者にメールを投げ、ファイルが存在している場合のみ処理するなど、業務の中で発生する多くの操作を分岐によって、処理することが出来ます。

Webページに次が含まれる場合Webページに対し、UI要素もしくはテキストが存在するかを判定します
ウィンドウが次を含む場合デスクトップアプリに対し、UI要素もしくはテキストが存在するかを判定します
サービスが次の場合Windowsのサービスが実行中か、インストールされているかなどを判定します
テキストが画面に表示される場合(OCR)OCR※した結果に対し、指定したテキストが存在するかを判定します
※ 光学文字読み取り:画像に埋め込まれた文字などからテキストを読み取ります
ファイルが存在する場合ファイルが存在するかを判定します
フォルダーが存在する場合フォルダーが存在するかを判定します
※ 「フォルダーを作成」を利用する場合は、フォルダーが既に存在していてもエラーにならないため、このアクションを使用しなくても大丈夫です
プロセスが次の場合Windows上でプロセス(プログラム)が実行されているかを判定します
画像が存在する場合キャプチャした画像が画面上に存在するかを判定します
ウィンドウが次の条件を満たす場合指定したウィンドウが開いているか、フォーカスされているかを判定します

ただし、Else if アクションは使えないため、複数条件ある場合は、対象の条件アクションを続けて使用する必要があります。
Elseアクションについては、従来通り「それ以外」として利用することが可能です。

今回は多く使うUI要素の判定を行ってみたいと思います。

UI要素の判定

UI要素の判定を行うには「ウィンドウが次を含む場合」アクションを使用します。
対象がWebページの場合は「Webページに次が含まれる場合」アクションで同じ処理を行うことが可能です。

このアクションでは、「UI要素を含む」「UI要素を含まない」「テキストを含む」「テキストを含まない」によって条件を指定することが出来ます。
UI要素の判定では、ボタンの有無などで処理を分岐することが出来るため、「この項目が出ていたらこの処理をしてほしい」というケースで利用することが出来ます。

テキストの判定では、同じ項目でメッセージの内容が変わる場合などに利用します。

ボタンなどでは、「UI 要素の状態を確認する」をオンにすることで、有効状態(ボタンが押せる状態)や無効状態(グレーアウトして押せない状態)の判定を行うことも出来ます。

できるPower Automate Desktop ノーコードで実現するはじめてのRPA
Power Automate Desktop サポートプラン
Power Automate Desktop 開発入門講習会