今回の記事では、Power Automate Desktopの「繰り返し処理」の使い方について解説していきたいと思います。
Power Automate Desktopのフロー作成において繰り返し処理は決して欠かせないものであり、繰り返し処理が使えるようになると、データを転記する際に大量のデータが扱えるようになるなどして業務効率化に大きく貢献することができます。 使用するアクションとその使い方、また簡単な例なども用いてご説明させていただきますので、最後まで読み進めていただけたらと思います。
繰り返し処理のアクションは全部で5種類
Power Automate Desktopの繰り返し処理で使用するアクションは、「For each」「Loop」「ループを抜ける」「ループ条件」「次のループ」の全部で5つとなります。
各アクションはフロー編集画面のループ配下で確認することが可能で、「For each」「Loop」「ループ条件」の3つが基本繰り返し処理を行うためのアクションとなります。
「ループを抜ける」「次のループ」に関しては、繰り返し処理を終了する時など、繰り返し処理内のフローを制御するために使うものですので、今回の記事では主に、「For each」「Loop」「ループ条件」の使い方について述べていきたいと思います。
繰り返し処理の基本的な使い方
「For Each」「Loop」「ループ条件」3つとも同様で、編集画面にドロップすると、「開始のアクション」と「End」が配置されます。
この「開始のアクション」と「End」の間に配置されたアクションが繰り返しの対象アクションとなり、複数配置することも可能です。
例えばExcelの転記処理を複数のワークブックに行う場合、情報の読み込みは1回のみ行い、ワークブックへの転記は複数回行うことになると思いますが、このワークブックへの転記処理を繰り返しアクション内に配置することで可能になります。
For eachの使い方
「For each」アクションは、データやリストなどのまとまった情報からひとつずつ情報を取り出し、繰り返し処理を行ってくれるアクションです。
情報を最初から最後まで1つずつ取り出してくれるので、事前にデータ件数が分かっていない場合でも使えるのがメリットです。
設定方法は簡単で、パラメーター選択画面の「反復処理を行う値」に、繰り返したい変数を指定するだけです。
例えばですが、事前にワークシートの複数範囲を読み取り、その情報が「ExcelData」という変数に入っているとします。
「For each」アクションのパラメーター選択画面の「反復処理を行う値」に「ExcelData」変数を指定すると、新たに生成された「CurrentItem」という変数に「ExcelData」の情報から1行ずつ情報を入れていくことになり、繰り返しアクション内でこの「CurrentItem」変数を対象にした処理を行うことで、1行ずつ処理を行うことが可能になります。
複数シートの情報が入っている変数を指定した場合は、そのシート範囲の最初のシートから最後のシートまで順番ずつ処理を行うなど、繰り返し毎に異なるシートの処理を行うことができます。
Loopの使い方
「Loop」アクションは、パラメーターの選択画面で指定された値をもとに、繰り返し処理を行うアクションです。
設定方法ですが、パラメーター選択画面の「開始値」に繰り返し処理を開始する値、「終了」には繰り返し処理を終える値、「増分」は1回のループが終わるころに加算する値を設定します。
これらで設定した値は、新たに生成された「LoopIndex」というカウンター変数に格納され、この変数を、繰り返し処理を行いたいアクション内で設定すれば、パラメーター選択画面で設定した数値の範囲内で繰り返し作業を行ってくれます。
例えば、Excelシートの2行目から10行目まで一つずつ書き込み処理を行いたい場合は、まず、「Loop」アクションのパラメーター選択画面の開始値に2、終了に10、増分に1をそれぞれ設定します。
その後「Loop」と「End」の間に「Excelワークシートに書き込み」をドラッグ、パラメーター選択画面の「行」に変数「LoopIndex」を設定することで、2行目から10行目の範囲で一つずつ書き込み処理を繰り返し行ってくれます。
ループ条件の使い方
「ループ条件」アクションは、パラメーターの選択画面で指定された条件をもとに繰り返し処理を行ってくれるアクションで、設定した条件が満たされる限り処理を行ってくれます。
設定方法ですが、パラメーター選択画面の「最初のオペランド」に条件判定を行う値または変数、「演算子」に比較条件、「2番目のオペランド」に条件判定を行いたいもう一方の値または変数を指定します。
ちなみに数値だけで設定した場合、例えば1<10のような指定方法は、数値の値が変化せず永遠と条件が満たされ繰り返し処理が終わらない「無限ループ」という状態になるので、注意が必要です。
どちらかのオペランドに値が変化する変数などを指定し、最終的には条件が満たされなくなることを前提にお使いいただけたらと思います。
まとめ
今回の記事では、Power Automate Desktopの繰り返し処理の使い方について解説させていただきました。
各繰り返しアクションの使い分けについては、「For each」はすべての処理を行いたい場合、「Loop」は繰り返し回数が決まっている場合、「ループ条件」は繰り返し回数が決まっていない場合に使うと有効です。
使い方と組み合わせは様々ですので、色々試してみて自分なりに使いやすい方法を見つけていただけたらと思います。