Power Automate Desktop(PAD)で、データテーブルをFor eachでループする方法について解説します。

【STEP1】データテーブルの作成
まずはじめに、対象となるデータテーブルを作成します。
【パターン1】新規でデータテーブルを作成する場合
新たに作成する場合は、以下アクションを追加します。
新しいデータテーブルを作成する

以下のダイアログが開きますので、「編集」を押します。

行・列は必要に応じて「+」マークから追加します。値を書き込む際はダブルクリックで書き込みます。

【パターン2】Excelから表を読み込む場合
Excelから表を読み込むことでデータテーブル変数を作成することもできます。
Excelの起動
まず、「Excelの起動」アクションを追加します。
Excelの起動

「Excelの起動」を「次のドキュメントを開く」に、
「ドキュメントパス」に開きたいExcelファイルのフルパスを指定します。
Excelワークシートから読み取る
次に、Excelシートから表を読み取ります。
Excelワークシートから読み取る

「取得」を「セル範囲の値」にし、開始行・列、最終行・列を指定します(1はじまり)。
先頭行に列名がある場合は、「詳細」の「範囲の最初の行に列名が含まれています」をオンにします。

これで、データテーブル変数 ExcelData に表の内容が入ります。

【STEP2】For each ループの設定
STEP1で作成したデータテーブルに対して、For eachループを回します。
For each の追加
For each

「反復処理を行う値」に、ループ処理したいデータテーブル変数を設定します。
For eachを追加すると、以下のようになります。

【パターン1】1行分のデータ全てを取り出す場合
1行分すべてのデータを取り出す場合の方法について解説します。

For eachループの間に、以下のアクションを追加します。
メッセージを表示

「表示するメッセージ」には %CurrentItem% を設定します。

これを実行すると、「りんご,200,30」→「みかん,500,50」→「ばなな,100,25」というメッセージが連続して表示されます。

【パターン2】1行分のデータのうち1つのカラムのみ取り出したい場合
1行分のデータのうち、1つのカラム(列)のみ取り出したい場合の方法を解説します。

「メッセージを表示」にて、「表示するメッセージ」に以下を指定します。
%CurrentItem[0]%

%CurrentItem[0]% と表記すると、データテーブルの1行分のデータのうち、1列目のデータのみを取得することができます。
これを実行すると、1列目のデータである商品名が「りんご」→「みかん」→「ばなな」の順でメッセージボックスに表示されます。

For each を使う際の注意点
For eachを使う場合には、必ずループ対象がリストかデータテーブルである必要があります。
文字列や数値などが入った単純な変数では、For eachを使うことはできません。

まとめ
今回は、Power Automate Desktop(PAD)で、データテーブルをFor eachでループする方法について解説しました。
- For each はリストやデータテーブルに対するループ処理ができる
- 1列だけ取り出す場合は %CurrentItem[0]% と表記する
上記をおさえて、データテーブルに対するFor eachを活用いただければと思います。
当ブログでは、Power Automate、Power Automate Desktopに関する記事を他にも投稿しています。もし、「このようなことが知りたい」「こんなフローの作り方が知りたい」等ございましたら、問い合わせやコメントからお気軽にご連絡ください。
参考:Power Automate ファイルの名前を変更する

コメント