PowerAutomate

【PowerAutomate入門】Apply to eachとは?~アレイ(配列)を1つずつ処理する方法~

ミムチ
ミムチ
Power Automateでフローを作成していたら、勝手に「Apply to each」というアクションが作成されましたぞ!

パワ実
パワ実
「Apply to each」はPower Automateでとてもよく使う反復処理の一つだよ。

この記事では、Power Automateの「コントロール」アクションの一つ「Apply to each」の使い方を解説します。

「Apply to each」を理解するための前提知識として、プログラミングの基本処理や、変数のアレイについて理解しておく必要がありますので、合わせて理解しましょう!

この記事でわかること

  1. プログラミングの基本処理とは何か?
  2. 変数のアレイ(配列)の使い方
  3. Apply to eachの仕組みと使い方

YouTube動画で見たいかたは、こちらからどうぞ!

Power Automateの基本的な仕組みを知りたい方は、以下の記事を参考にしてください。

【PowerAutomate入門】はじめてのPowerAutomate~基本な仕組みと操作方法~ 今回はPower Automateを使い始めたばかりの人向けに、Power Automateの基本的な仕組みと、操作方法を解説し...

プログラミングの基本処理「順次」 「分岐」 「反復」とは?

初めに前提知識として、プログラミングの基本となる3つの処理、順次、分岐、反復について説明します。

PowerAutomateはローコードプラットフォームですが、フローで実行する基本的な処理は、この3つになります。

そのため、この3つの基本処理を前提知識として理解しておくと、PowerAutomateの実装も理解がしやすくなります。

<順次>

  • 上から下に順番に、処理1、処理2と実行していくこと

<分岐> ⇒「条件」「スイッチ」等

  • 条件を満たしているかによって、その後の処理が変わること

<反復> ⇒「Apply to each」「Do Until」等

  • 条件を満たしている間、繰り返し同じ処理を実行すること

「順次」は、感覚的に理解している人も多いと思いますが、一番上のトリガーでフローを開始し、その後のアクションを上から順に実行していくことです。

「分岐」は、例えばTeamsの件名に、”申請”という文字が入っていた場合は、処理1、”申請”の文字が入っていない場合は、処理2を実行する等で使います。

分岐についての詳細は、以下の記事も参考にしてください

【PowerAutomate入門】条件に応じて処理を変える方法~条件分岐~ この記事では、Power Automateで条件に応じて処理を変える、条件分岐の方法について解説します。 例えばメール受信...

「反復」は、例えば条件で変数counterが0から始まり、3未満の場合は、処理1を繰り返す等があります。

この場合、処理1の最後に変数counterが+1され、1つずつカウントアップされていき、Counterが3になったときに、このループを抜け、処理2が実行されます。

ミムチ
ミムチ
なるほど。「Apply to each」は、この反復処理になるのですな。

パワ実
パワ実
そうそう。「Apply to each」は、アレイ(配列)を1つずつ取り出して、最後の要素がなくなるまで、処理1を繰り返し実行することができるよ。

アレイ(配列)とは何か?

ミムチ
ミムチ
ちょっと待ってくだされ!

今言った「アレイ(配列)」とは何ですかな?

パワ実
パワ実
アレイ(配列)とは、複数の値が一つにまとまったものだよ。

「Apply to each」を理解するためには、先に「アレイ(配列)」について、理解しよう!

以下のテーブルの例を見てください。

例えば「数値のアレイ」として、[1, 2, 3]という値の集まりや、「文字列のアレイ」として、[“ブドウ”, “ミカン”, “リンゴ”]の値の集まり等がアレイになります。

複数の列を持つテーブルは、「オブジェクトのアレイ」になります。

Excelの表でもよく使うと思いますが、このようなものもアレイといいます。

「Apply to each」は、このようなアレイを1行ずつ取り出し、同じ処理を繰り返し実行できます。

Apply to each(反復処理)の使い方

Apply to eachの使い方を解説

それでは数値の[1, 2, 3]というアレイを例に、「Apply to each」の使い方の例を説明します。

まず、アレイ型の変数[1, 2, 3]を作成します。

そして「Apply to each」を使い、その中の処理で「Excelに行を追加する」というアクションを設定します。

このとき、どのように処理が進むのでしょうか?

まず、繰り返しの1回目で、アレイの1つ目の要素、数字の1が処理されます。

Apply to eachの中に設定したアクション、Excel表に行を追加が実行され、Excel表の1行目に、1が追加されます。

次に、繰り返しの2回目で、アレイの2つ目の要素、数字の2が処理されます。

Apply to eachの中に設定したアクション、Excel表に行を追加が実行され、Excel表の2行目に、2が追加されます。

最後に、アレイの3つ目の要素、数字の3が処理され、Excel表の3行目に、3が追加されます。

そしてアレイの、3つすべての値の処理が終わると、Apply to eachの中の処理は終わります。

Apply to eachの後に、別の処理を設定している場合は、その処理の実行に移ります。

このように、Apply to eachは、アレイの要素を1つずつ取り出し、中の処理を繰り返し実行することができます。

Power Automateでの実装方法

1.PowerAutomateを開き、作成から、自動化されたクラウドフローを作成します。

2.トリガーはひとまず手動にし、最初のアクションで「変数を初期化する」を選択し、以下の設定をします。

名前:任意の変数名を入力

種類:アレイ

値:[1, 2, 3]

※文字列の場合は、値を“”で囲う必要がありますが、数値の場合は必要ありません。

これで数値のアレイ型変数ができました。

3.次のアクションで「コントロール」>「それぞれに適用」を選択し、以下の設定をします。

この「それぞれに適用」が「Apply to each」です。

出力:「動的なコンテンツ」から2.で作成した変数(数値のアレイ)を設定

このApply to eachの中にアクションを追加すれば、数値のアレイが、1~3まで順に1つずつ取り出され、アクションが実行されます。

4.アクションの追加から「Excel」>「表に行を追加する」アクションをクリックし、以下の設定をします。

※今回はSharePointのドキュメントフォルダに、「番号列」だけ持つ空のExcelテーブルを用意しました。

場所:Excelファイルの保存場所

ドキュメントライブラリ:ドキュメント

ファイル:Excelファイルの格納場所

テーブル:テーブル名

5.テーブルの列が自動で表示されるため、「番号列」に動的なコンテンツから「現在のアイテム」を選択して設定します。

現在のアイテムというのが、アレイ[1, 2, 3]を1から順に一つずつ取り出した値が処理されます。

6.フローを保存して、テスト実行してみます。

フローが正常に終了した後、Excelのテーブルを見てみると、このようにちゃんと1~3までの数値が行に追加されています。

このような感じで、Power Automateで「Apply to each」を使うことができます。

最後に

本日はPower Automateの、Apply to eachの使い方を解説しました。

Apply to eachは、Power Automateの中でも、とてもよく使う処理です。

例えば、SharePointリストの列に保存した添付ファイルも、アレイとして取得されるため、1つ1つの添付ファイルを取り出すには、Apply to eachを使います。

ミムチ
ミムチ
今回はかなり単純な処理だったから何とか分かりましたが、もっと複雑な処理になると難しそうですな…

パワ実
パワ実
複雑になっても基本が分かっていると、理解しやすくなるはずだよ!

「Apply to each」でオブジェクトのアレイを処理する方法についても、また別の記事で詳しく説明していくね。

Apply to eachはとてもよく使う反復処理なので、是非マスターしましょう!

Power Platform開発・学習支援のご相談については、以下のページをご覧ください。

Power Platformに関するご相談について パワ実のプロフィール IT部門にて、Power Platform等を活用した社内DX推進業務に従事(2021年~2023年9月)...
ABOUT ME
パワ実
DX推進担当(IT部門) 2021年からPower Platform(Power BI、Power Apps、Power Automate)を勉強中。 Power Platformを使っていく中で、知りえた情報を発信している。 Youtube、Twitterでの情報発信もしています!

Power Platformのご依頼・ご相談について

Power Platformについてのご相談、お仕事のご依頼については、
こちらのお問い合わせページをご確認ください。