











前回に引き続き、フリー、オープンソースの RPA ツールのPulover’s Macro Creator を使ってウィンドウ操作、そして新しいこととして条件分岐について学んでいきます。
今回のウィンドウ関係のコマンドは、ウィンドウ操作というより、「ウィンドウがどんな状態か?」「アクティブなウィンドウは何か?」という情報を元に、 RPA のシナリオの流れを制御していきます。これをプログラミングの用語では、条件分岐(条件判断と処理分岐)と言います。
前回までに作成した RPA シナリオを使っていくので、条件分岐だけ知りたいんだ! という方も元となる RPA シナリオを作成してきてくださいね。
RPA における条件分岐
RPA における条件分岐とはどういうものかについて、簡単に説明します。基本的に、RPA シナリオというのは、ひとつのシナリオの中にいくつもの大きな機能を持つものではありません。プログラミングで作られるアプリケーションであれば、逆に単一の機能しか持たないものは、今は少なくなっています。
ではどういう時に用いるかというと、
- アプリケーションによる細かな分岐の処理(確認ダイアログなど)
- エラーの判断
- ユーザーの確認が必要かどうかの判断
- 処理する対象かどうかの判断
といったものが挙げられます。リストの下の方に行くほど、 RPA での実装の難易度が高く必要としない場合が多いと思って問題ないと思います。そういった複雑度の高い業務は RPA に向かないので、まずは複雑度を下げるように業務の「棚卸」を行うといいと思います。
今回は、1番上について取り上げます。
今回の記事が役に立つ人
- RPA を基礎からじっくり学んでいる人
- Pulover’s Macro Creator で条件分岐を使いたい人
- RPA 全般で、確認ダイアログなどにどう対応するか、考え方を知りたい人
関連記事
本連載の目次や、Pulover’s Macro Creator の関連情報は以下のページにまとめています。
RPA で上書き確認に対応する
以下では、前回までに作成した、メモ帳で名前を付けて保存し、メモ帳のウィンドウをドラッグする RPA シナリオを改造していくので、開いておいてください。
前回の RPA シナリオの問題点
前回作った RPA シナリオの問題点を覚えているでしょうか。「名前を付けて保存」をしたときに、同名のファイルがある場合、上書きしてもいいかどうかの確認ダイアログが表示されてしまい、期待通りの動作をしないことでしたね。
今回はこれに対していくつかのアプローチで対策を行います。
対策の下準備として、「名前を付けて保存ダイアログが非アクティブになる」のを待つ
前回は、メモ帳のウィンドウがアクティブになるのを待つコマンドを使いましたが、今回はその逆で非アクティブになるのを待ちます。なぜかというと(通常の操作では)、名前を付けて保存するまで、確認ダイアログがでるかどうか、分からないからです。
ではコマンドを入力していきましょう。
- RPA シナリオが表示されたパネルから、WinWaitアクションで「名前を付けて保存」ダイアログを待つ行をダブルクリックして、編集ダイアログを表示します。
- 編集ダイアログを表示したら、「…」ボタン下のテキストボックスから、ウィンドウを特定する文字列(名前を付けて保存 ahk_class #32770 ahk_exe notepad.exe)をコピーします。
- このダイアログはこのまま閉じます。
- F6(ウィンドウボタン)キーを押して、ウィンドウコマンドの新規追加ダイアログを表示します。
- コマンドはWinWaitNotActive
- タイムアウトは10(秒)
- ウィンドウを特定する文字列は、先ほどコピーしてきたものを貼り付けます。
このように設定できたら、OKボタンでダイアログを閉じます。- 追加された「WinWaitNotActive」アクションを、test{Enter}と入力するアクションの下、メモ帳ウィンドウがアクティブになるのを待つWinWaitActiveの上に配置します。
- 追加したアクションの下にあるメモ帳ウィンドウがアクティブになるのを待つWinWaitActiveアクションを削除します。
- test.txtファイルを削除してから、試しにこの RPA シナリオを動作させてみます。
- 前回同様に素早く保存からドラッグまで実行されることを確認します。今回は、上書き確認ダイアログを利用したいので、test.txtファイルは消さずに残します。
解説
WinWaitNotActive アクションは指定したウィンドウやダイアログが非アクティブになるのを待ちます。名前を付けて保存ダイアログが非アクティブになる、ということは、通常はメモ帳のウィンドウがアクティブに戻ることを意味します。
そのため、「名前を付けて保存の確認」ダイアログが表示される場合以外は、「メモ帳がウィンドウがアクティブになるのを待つ」のとほぼ同じ意味を持ちます。
またこのアクションをtest.txtを削除しないで実行した場合、Move アクションの位置がウィンドウの左側に近ければ、「名前を付けて保存の確認」ダイアログがメモ帳同様に素早く移動されることが分かります。もし同様の動作を前回のWinWaitActiveで行うためには10秒待つ必要がありました。
RPA で上書き確認ダイアログに「OK」の指示を出す
それでは今回の本題その1に入って行きましょう。
- 上書き確認ダイアログが出たら「OK」をクリックして、メモ帳のウィンドウをドラッグ。
- 上書き確認ダイアログが出なかったら、そのままメモ帳のウィンドウをドラッグ。
という RPA シナリオを作っていきます。プログラミング未経験の方にはイメージが掴みづらいところですが、マスターすれば自作できる RPA シナリオの幅がぐっと広がるので、頑張っていきましょう。
if文の挿入
ここまで作成した RPA シナリオをもう1度実行して、メモ帳で「名前を付けて保存の確認」ダイアログを表示し、そのままにしておきます。