初めてRPAツールを触る方や基本的なプログラミング学習向けに、Power Automate Desktop(PAD)のループアクション(For each、Loop、ループ条件)について解説しています。ご自身の環境で動作可能なフローのテンプレートも共有して説明していますので、Power Automate Desktopを使った自動化フローを作る際の参考にしてみてください。
マイクロソフトの無償RPA(自動化ツール)である「Power Automate Desktop(PAD)」でのループアクション(繰り返し処理)の使い方について解説しています。
自動化のフローには欠かせない繰り返し処理。名簿に記入された全員に対してメールを送ったり、データのリストの全行を読み取って集計したり、フォルダ内に何個あるかわからないファイルすべてに対して処理を行うなど、その繰り返しとなる条件もさまざまです。
Power Automate Desktopでは、繰り返し処理を行うためのアクションとして「For each」、「Loop」、「ループ条件(While)」という3つのアクションが用意されていますが、これらの使い分けはどのようにしたらよいのでしょうか。
今回は具体的な例とともにこれら3つのループアクションの使い方、使い分けについてご紹介します。
無料自動化ツールの「Microsoft Power Automate Desktop」について、そもそもの解説や導入方法についてはPower Automate Desktopについてをお読みいただくと基本的な使い方などが確認できます。
Power Automate Desktopのループ処理
Power Automate Desktopでは、繰り返し処理を行うためのアクションとして「For each」、「Loop」、「ループを抜ける」、「ループ条件」、「次のループ」という5つのアクションが用意されています。
それぞれのアクションは、フロー編集画面の一覧の [ループ] 項目の配下で確認することができます。
この5つのアクションのうち 「For each」、「Loop」、「ループ条件」の3つのアクションは、繰り返し処理そのものを行うループを作るためのアクションとなっています。
ループ処理の作り方
「For each」、「Loop」、「ループ条件」のいずれも共通の構造を持っており、フローの編集画面に配置すると以下のように「開始のアクション」と「End」アクションの2つが同時に配置されます。
ループアクションは、その繰り返しの範囲を決めるために「開始」と「終了」のポイントを定める必要があります。これらを決めるのがこの2つのアクションです。
「開始のアクション」と「End」アクションは、2つの間に複数のアクションを配置することができます。そして、このアクションの間に配置されたアクションが繰り返し処理の対象となります。
例えばExcelのリストを読み込み、ワークシートの名簿に記載されたメールアドレスにメールを送るような処理するような場合、Excelの読み込み自体は1回で十分で、その後読み取った各メールアドレスに対して繰り返し処理が必要になります。
そのようなときは、ループアクションの手前に「Excelのワークシートから読み取り」を配置し、ループアクションの内側(開始アクションとEndアクションの間)に「メールの送信」アクションを配置するような構成になります。
「ループを抜ける」、「次のループ」2つのアクション
「ループを抜ける」と「次のループ」の2つのアクションは、繰り返し処理そのものを作るのではなく、繰り返し処理の中でフローを制御するために使われます。
いずれもループの処理を変更するアクションのため、これらのアクションはループの内側(開始アクションからEndアクションまでの間)に配置します。
また、これらはループを強制的に抜けたり終了させたりするため、一般的には何らかの条件式を使ってフローを処理する際に利用されます。
3つのループの機能と設定方法
Power Automate Desktopのループアクションのうち、繰り返し処理を作る「For each」、「Loop」、「ループ条件」の3つのアクションの機能や設定方法について解説します。
For each
「For each」アクションは、リストやデータテーブル、データ行の各行に対して繰り返し処理を行うループアクションです。
「For each」アクションの設定項目は以下のようになっています。
[反復処理を行う値]:繰り返し処理を行う元となるリスト(変数)を指定します。
「For each」の繰り返し処理を行うには、繰り返しのもととなるリストのデータが必要となります。
このリストは、Excelのワークシートやテキスト、Webサイトのテーブルのデータなどから取得したデータ利用します。
リストを指定するだけでデータの最初から最後まで1行ずつ取り出して処理できるため、事前にデータの件数などがわからなくても使える点がポイントです。
また、取り出したデータは繰り返しのたびに変数%CurrentItem%
に格納されるため、繰り返し処理の内側ではこの変数のデータを使って繰り返しごとに異なる処理を行うことができます。
Loop
「Loop」アクションは、指定された数値などのカウントを基に繰り返し処理を行うループアクションです。
「Loop」アクションの設定項目は以下のようになっています。
[開始値]:繰り返し処理を開始する段階での%LoopIndex%
の値を指定します。
[終了]:%LoopIndex%
の値がこの値になるまでループが繰り返されます。
[増分]:1回のループが終わるごとにこの値が%LoopIndex%
に加算されます。
いわゆるカウンターを使って、カウンターの値が繰り返しの回数に達するまで繰り返し動作するアクションです。
「Loop」アクションでは%LoopIndex%
変数がカウンターとして使われ、1回ループを実行するたびに [増分] の数だけ数値を加えます。そして、%LoopIndex%
の値が [終了] にまで達したら繰り返しを終了します。
ループ条件(While)
「ループ条件」アクションは、条件判定を基に繰り返しを継続するループアクションです。
「ループ条件」アクションの設定項目は以下のようになっています。
[最初のオペランド]:条件判定を行う一方の値、変数を指定します。
[演算子]:ふたつのオペランドを比較する条件を指定します。
[2番目のオペランド]:条件判定を行う他方の値、変数を指定します。
オペランド(operand)とは、コンピュータプログラムなどで、計算や評価の対象となる値のことを言います。
また、演算子(operator)とは演算を表す記号で、コンピュータプログラムでは数値の四則計算(+-×÷)を行う算術演算子などのほか、代入や比較などを行うために使うことができる演算子などが用意されています。
例えば「1 + 2 = 3」という数式があった場合、「1」「2」「3」の数値がオペランド、「+」「=」が演算子です。変数などを使った場合も同様で「x * y = z」という数式の場合「x」「y」「z」の変数がオペランド、「*」「=」が演算子となります。
「オペランド」、「演算子」などのわかりにくい用語が使われていますが、これらはひとつの数式として並べてみると理解しやすくなると思います。
例えば、[最初のオペランド] に「%Value%」、[演算子] に「より小さい(<)」、[2番目のオペランド] に「5」を指定した場合、条件式は
%Value% < 5
となり、「変数%Value%の値が5より小さい状態である限り繰り返し処理が反復される」という意味になります。
また、オペランドはいずれも変数を指定することもできるので、
%Value1% <> %Value2%
のように、「変数%Value1%が変数%Value2%と等しくない」というような条件も指定可能です。
なお、「ループ条件」アクションでは、両方もしくはいずれか一方のオペランドに変数を指定することが一般的です。
その理由はシンプルで、指定された数値は繰り返し処理を続けても変化しないため、
1 < 5
のような数値だけで指定されたループ条件アクションはフローの実行中に変化することがありません。これは「ループ条件」アクションの繰り返し条件を常に満たし続ける状態のため、絶対に終わらないいわゆる「無限ループ」のアクションとなります。
「For each」、「Loop」、「ループ条件」アクションの使い分け
ここまでで「For each」、「Loop」、「ループ条件」アクションの設定や動作について説明しましたが、これらの使い分けはざっくり以下のようになります。
- For each:リストのデータがあり、その1件1件にすべて対して行う処理。
- Loop:繰り返し回数が決まっている処理。
- ループ条件:繰り返し回数が決まっていない処理。
具体的な例ですが、まず、Excelなどの帳票データを使って1件ずつ処理をするような場合はFor eachアクションが適しています。
下記はExcelファイルを読み取り、シートに記入されている内容の全件を抜き出して表示するフローのサンプルです。
また、決まった処理を10回繰り返すような回数が決まっているループ処理を行うにはLoopアクションが適しています。
下記は、Power Automate Desktopをつかって簡単な数当てゲームを作るというちょっと特殊な例ですが、数当てゲームの条件で、10回以内に正解にたどり着くという条件の繰り返しにLoopを使用しています。
そして、変動する条件をつかって繰り返しを行うような場合はループ条件アクションが使えます。
下記もちょっと特殊な例ですが、ループ条件アクションを使って時間が5分経過するまで判定を繰り返すフローのサンプルです。
それぞれのループアクション使い方の詳細、具体的なフローのサンプルは以下のページなどでも紹介していますので参考にしてみてください。
- Excelに入力されたデータの最終行まで繰り返し処理する
- 基本的なアクションを使って簡単なゲームを作ってみる
- ECサイト(楽天市場)の在庫復活を定期的に自動チェックする
- 複数のWebサイトを自動巡回してスクリーンショットをキャプチャする
まとめ
Power Automate Desktopのループアクション(繰り返し処理)の使い方について解説しました。
それぞれのループアクションの動作には違いがありますが、変数やアクションの設定の組み合わせ方によってはどのループアクションも同じ処理になるように設定することも可能です。
ループアクションの選択はあくまで「より適している」というものであり、このループを使わなければいけいないというものではありませんので、初めのうちは使いやすいアクションを使ってフローを組み立ててみるのが良いでしょう。
その後、フローの設計に慣れてきたらそれぞれのループを使い分けていくのが良いと思います。
クラベルではほかにもテンプレートとして使えるPower Automate Desktopのフローサンプルを解説付きでご紹介していますのでぜひ参考にしてみてください。
お読みくださりありがとうございました。今回の内容が少しでもお役に立てば幸いです。
コメント