Microsoftが提供するPower Automateは、ノーコーディング、ローコーディングでフローを作成するRPAツールです。
Power Automateのフローで、ループを使って処理したいときがあります。
この記事では、Power Automate Webの2種類のループについて解説します。
テーマ
Power Automateには繰り返し処理を行うアクションが用意されています。 |
![]() |
![]() |
はい。 |
そうですね。具体的な内容を見てみましょう。 |
![]() |
内容
上記のようなループについては、「コントロール」コネクタで「Apply to each」と「Do until」の2種類のアクションが用意されています。
Apply to each
Apply to eachは、配列等の各要素に対して繰り返し処理を行います。
例えば、Excelコネクタの「表内に存在する行を一覧表示」アクションでテーブルを取得した後、テーブルの要素を1行ずつ取り出して処理する場合に使います。
この場合、「以下の手順から出力を選択」の欄に、「表内に存在する行を一覧表示」のvalueを設定します。
Apply to each内の処理は、Apply to each内部の「アクションの追加」をクリックすることにより追加して作成します。
なお、Apply to eachは、Excel VBAのforeach文と同様のアクションです。
Do until
Do untilは、条件が真になるまで繰り返し処理を行います。
Do untilアクションを追加すると、条件を入力する3つの欄があります。
ここに繰り返し処理を終了させる条件を入力します。
フローの実行中に、入力した条件が真になったら繰り返し処理が終了します。
Do until内の処理は、Do until内内部の「アクションの追加」をクリックすることにより追加して作成します。
なお、Do untilは、Excel VBAのDo Loop文と同様のアクションです。
事例
Apply to each
ここでは、Apply to eachを使って配列から1つずつ要素を取り出す例を示します。
まず、次のように配列(アレイ)を定義します。
名前はarray、要素は”A”, ”B”, ”C”の3つです。
Apply to eachを次のように記述します。
「以下の手順から出力を選択」には、先ほど定義した配列arrayを選択します。
また、ここではApply to eachの中に「変数の設定」アクションを追加しました。
変数textValに「現在のアイテム」を設定しています。
「現在のアイテム」とは配列arrayから取り出された要素です。
すなわち、変数textValにApply to eachによって取り出された配列の要素を設定します。
実行した結果は以下の通りです。
Apply to eachの1回目のループでは、配列arrayの1個目の要素”A”が変数textValに設定されます。
Apply to eachの2回目のループでは、配列arrayの2個目の要素”B”が変数textValに設定されます。
Apply to eachの最後のループでは、配列arrayの3個目の要素”C”が変数textValに設定されます。
以上で繰り返しは終了します。
Do until
ここでは、Do untilを使って整数をインクリメントし、3になったら繰り返しを終了する例を示します。
Do untilを次のように記述します。
Do untilのループを終了する条件には変数countが3以上と定義します。
また、ここではDo untilの中に「変数の数を増やす」アクションを追加しました。
実行されるたびに変数countの値に1を加えます。
Do untilで繰り返しが発生するたびに変数countに1が加算され、3になったら繰り返しを終了します。
実行した結果は以下の通りです。
Do untilの1回目のループでは、整数countの値は1です。
Do untilの2回目のループでは、整数countの値は2です。
Do untilの最後のループでは、整数countの値は3です。
以上で繰り返しは終了します。
注意点
Apply to each
Apply to eachで注意すべき点は、ループを途中で抜けることができないことです。
Excel VBAのexit forのような命令相当はないようです。
なので、途中で繰り返しを終了したい場合はDo untilをうまく使う必要があります。
なお、Apply to each内部で、「コントロール」の「終了」アクションを追加しようとすると、「操作 'terminate' は、foreach 内部で使用できません。」というエラーが出て追加できませんでした。
Do until
Do untilで注意すべき点は、先に処理を実行して次に条件判断することです。
すなわち、繰り返し処理の1回目は、無条件に実行されます。
Do untilアクションの画面の構成は、上にループを抜ける条件置かれ、下に処理が置かれているため、先にループを抜ける条件判断がされるように見えます。
しかし、そうではないのです。処理が実行された後、条件判断がされます。
もう一つのDo untilで注意すべき点は、繰り返し回数の制限が設定されていることです。
この設定値が少ないとループが途中であるにも関わらず繰り返しは終了します。
なので、予定される回数より大きい値を設定したいところです。
なお、デフォルトでは60です。最大で5,000まで設定できます。
また、タイムアウトの制限があります。
デフォルトではPT1H(1時間)に設定されています。
最大では30日(PT720H)まで設定できます。

まとめ
Power Automate Webでは、繰り返しアクションとしてApply to each、Do untilが用意されています。
Apply to eachは、配列等の各要素に対して繰り返し処理を行います。
Do untilは、条件が真になるまで繰り返し処理を行います。
Apply to eachは、繰り返しを途中で終了できない点に注意します。
Do untilは、制限が設定されていることに注意します。
コメント