Power Automate Desktop(PAD)で、データテーブルをFor eachでループする方法について解説します。
【STEP1】データテーブルの作成
まずはじめに、対象となるデータテーブルを作成します。
【パターン1】新規でデータテーブルを作成する場合
新たに作成する場合は、以下アクションを追加します。
以下のダイアログが開きますので、「編集」を押します。
行・列は必要に応じて「+」マークから追加します。値を書き込む際はダブルクリックで書き込みます。
【パターン2】Excelから表を読み込む場合
Excelから表を読み込むことでデータテーブル変数を作成することもできます。
Excelの起動
まず、「Excelの起動」アクションを追加します。
「Excelの起動」を「次のドキュメントを開く」に、
「ドキュメントパス」に開きたいExcelファイルのフルパスを指定します。
Excelワークシートから読み取る
次に、Excelシートから表を読み取ります。
「取得」を「セル範囲の値」にし、開始行・列、最終行・列を指定します(1はじまり)。
先頭行に列名がある場合は、「詳細」の「範囲の最初の行に列名が含まれています」をオンにします。
これで、データテーブル変数 ExcelData に表の内容が入ります。
【STEP2】For each ループの設定
STEP1で作成したデータテーブルに対して、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 ファイルの名前を変更する
コメント