Power Automate desktopのFor eachとLoopの違い

PRA

For eachとLoopのアクションの場所

「ループ」にFor eachとLoopアクションがあります。

事前準備 テーブルにデータを設定

まず、For eachとLoopアクションを実行する前に、2次元のデータを用意します。
「新しいデータテーブルを作成する」のアクションで新しいテーブルを作成します。テーブル名は、DataTableとしました。
1番目の行(row)は0行となり、1番目の列(Column)は0列となります。
例えば、DataTable(0,0)を指定すると、「a」が表示されます。

「For each」アクションについて

  • フォルダー内のファイル、テキスト、またはテーブルなどのデータの各要素に対して繰り返し処理を実行します。
  • 複数のオブジェクトを処理するために使用されます。例えば、フォルダ内の複数のファイルを順番に処理したい場合に使用できます。
  • 繰り返しの数は、入力されたオブジェクトの数に基づいて自動的に設定されます。
  • 処理中に発生したエラーをハンドリングするために、”On error” プロパティを使用してエラー処理を設定することができます。
  • ループ変数を使用して、各要素の値にアクセスできます。これにより、各要素に異なる処理を実行することができます。

For Eachアクションの使用例

2次元配列であるDataTable(3行、4列)をFor Eachで処理します。
For Each内では、変数の設定(%SumData% + %CurrentItem%)します。

今回の場合、「変数の設定」が何回、実行されるかというと、DataTable(3行)の3回です。

1回目に +a, b, c, d
2回目に +a, b, c, d + e, f, g, h
3回目に +a, b, c, d + e, f, g, h + i, j, k, l
となります。

For Eachアクションを使用したサンプルコード

Variables.CreateNewDatatable InputTable: { ^['Column1', 'Column2', 'Column3', 'Column4'], [$'''a''', $'''b''', $'''c''', $'''d'''], [$'''e''', $'''f''', $'''g''', $'''h'''], [$'''i''', $'''j''', $'''k''', $'''l'''] } DataTable=> DataTable
LOOP FOREACH CurrentItem IN DataTable
    SET SumData TO $'''%SumData% + %CurrentItem%'''
END

「Loop」アクションについて

  • Loopアクションは、特定の条件が満たされるまで、指定されたアクションを繰り返し実行するために使用されます。
  • ループの条件を設定するために、IfアクションやWhileアクションと組み合わせて使用することができます。
  • ループ中に発生したエラーをハンドリングするために、”On error” プロパティを使用してエラー処理を設定することができます。
  • ループの中で、繰り返しの回数やループ変数をカウントすることができます。

Loopアクションの使用例

2次元配列であるDataTable(3行、4列)をFor Eachで処理します。
For Each内では、変数の設定(%SumData% + %DataTable[Table_row][Table_column]%)します。

今回の場合、「変数の設定」が何回、実行されるかというと、DataTable(3行×4列)の計12回です。

1回目 a
2回目 a+b
3回目 a+b+c
・・・
12回目 a + b + c + d + e + f + g + h + i + j + k + l

Loopアクションを使用したサンプルコード

Variables.CreateNewDatatable InputTable: { ^['Column1', 'Column2', 'Column3', 'Column4'], [$'''a''', $'''b''', $'''c''', $'''d'''], [$'''e''', $'''f''', $'''g''', $'''h'''], [$'''i''', $'''j''', $'''k''', $'''l'''] } DataTable=> DataTable
LOOP Table_row FROM 0 TO 2 STEP 1
    LOOP Table_column FROM 0 TO 3 STEP 1
        SET SumData TO $'''%SumData% + %DataTable[Table_row][Table_column]%'''
    END
END

コメント

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