Power Automate desktop|For eachの使い方

Power Automate Desktop

Power Automate for desktopのFor Eachの使い方を解説します。Loopとの違いについても解説しているので最後までお読みください。

この記事でわかること
・For eachの使い方
・For eachとLoopの違い
検証バージョン
OS:Windows10
Power Automate for desktopバージョン:2.22

それでは、どうぞ!

この記事を書いた人
この記事を書いた人
こさい
こさい

(株)完全自動化研究所代表のこさいです。

1) エンジニア歴25年超。開発から業務改善まで幅広く経験してきました
2) 複数の企業においてRPAのコンサルティングを行っています
3) RPA関連の書籍を5冊出版しています

  1. オープンソースで作る!RPAシステム開発入門
  2. 実務者のための失敗しないRPAシナリオ設計入門
  3. UiPath業務自動化最強レシピ
  4. WinActor業務自動化最強レシピ
  5. Power Automate for desktop業務自動化最強レシピ

For eachの使い方

リストやデータテーブルのアイテム数分ループ処理を行うときは[For each]アクションを使用します。

実行のたびに行数が変動するExcelデータやCSVデータなどを操作するときに必要なテクニックです。

[For each]アクションの使い方

[反復処理を行う値]にはループ処理を行うリスト、データテーブルなどの値を入力します。

[保存先]には[反復処理を行う値]で指定されたリストやデータテーブルの現在の値が格納されます。

[CurrentItem]には現在の値が格納される

[For each]アクションを使ったフローの例を基に解説します。リスト型変数[List1]には「A」「B」「C」という3つのテキストが格納されています()。

[For each]アクションにより、リスト内のアイテムがなくなるまで、1つずつループ処理が行われます()。

変数[CurrentItem]には現在の値が格納されます()。

フローを実行するとメッセージボックスが3回表示されます。リスト[List1]には3つのアイテムがあるからです。メッセージに変数[CurrentItem]の値が表示されるようになっています。

LoopとFor eachの違い

For eachの使い方をより理解するために、Loopと比較して解説します。

[Loop]アクション

[Loop]アクションは反復(ループ)する回数がわかっているときに使います。

ループ数を格納する変数(ループインデックスと呼ぶ)が1から始まり、1つずつ増加されて、最終的に3になるまでループするには、下図のように設定します。

[Loop]アクションは何回ループするのかがわかっている必要があり、[開始値]と[終了]を設定しなければなりません。

ループインデックスは[生成された変数]に格納されるため、現在のループ回数がわかります。ループインデックスをループ中に利用することができます。

[For each]アクション

[For each]アクションは[Loop]アクションと違って何回ループするのか設定しなくていいという特徴があります。

ループ処理内でリストやデータテーブルなどの現在のアイテムにアクセスできるので、ループ処理内の記述がシンプルになり、可読性が高まります

[Loop]アクションと違いループインデックスは自動では生成されません。[For each]アクションのループ中にループインデックス使用したい場合は、[変数の設定]アクションを使ってループインデックスを作成する必要があります

データテーブルのアイテム数分ループするフローで比較

もっと具体的に違いを認識するために、具体的なフローを示します。

データテーブルのアイテム数分ループするフローを[Loop]アクションを使った場合と、[For each]アクションを使った場合で比べてみます。

ループ処理するのはデータテーブル[DataTable]とします。このデータテーブルは[あたらしいデータテーブルを作成する]アクションを使って作成します。

データテーブル[DataTable]の列[Text]のアイテム(’A’、’B’、’C’、’D’、’E’)をメッセージボックスで表示するフローはそれぞれ次のようになります。

上記フローの2ステップ目の[Loop]アクションと[For each]アクションの設定ダイアログの違いを見てみましょう。[For each]アクションのほうがシンプルに設定できていますね。

[メッセージを表示]アクションの[表示するメッセージ]も見てみましょう。[Loop]アクションでは「%DataTable[LoopIndex – 1][1]%」、[For each]アクションでは「%CurrentItem[1]%」と設定しています。こちらも[For each]アクションのほうがシンプルに設定できていますね。

[Loop]アクションではデータテーブルの行と列を指定していますが、[For each]アクションではアイテムにアクセスできているため、列を指定するだけです。

まとめ

Power Automate for desktopでFor eachを使う方法を解説しました。

For eachとLoopの違いを理解することで、両者の使い分けができるようになります。

以下の記事で[For each]アクションを使用したフローを解説しているので、こちらの記事も併せてお読みください。

タイトルとURLをコピーしました