この記事では、Power Automate Desktopにおける「ループ」の基本的な使い方を、初心者向けにわかりやすく解説していきます。また、よくあるQ&Aもまとめましたので、ぜひ参考にしてください。
1. Power Automate Desktopでのループの基本概念
「ループ」とは、一定の条件を満たすまで同じ処理を繰り返す制御構造のことです。たとえば、「リスト内のすべてのアイテムに対して同じ処理を行う」や「特定の条件を満たすまで繰り返し動作する」といったシナリオで使用されます。プログラム初心者の方でも、ループを理解することで自動化の幅が広がります。
よく使われるループの種類
Power Automate Desktopでは、以下のようなループがよく使われます。
- For each:リストや配列の各アイテムに対して繰り返し処理を行う
- Loop:指定した回数だけ処理を繰り返す
- While:特定の条件が満たされる間、処理を繰り返す
それでは、これらのループを順番に詳しく見ていきましょう。
2. For eachの使い方:リスト内のアイテムに対する処理
「For each」ループは、リスト(配列)内のすべてのアイテムに対して同じ処理を行う際に使用します。たとえば、Excelの行ごとに処理を行いたい場合や、フォルダ内のファイルに対して処理を実行したい場合に便利です。
実際の使い方
- 「For each」アクションをドラッグ&ドロップしてフローに追加します。
- 「反復するリスト」に処理対象のリストを指定します(例:Excelデータの行、フォルダ内のファイルリストなど)。
- 「現在のアイテム」には、ループの中で扱う各アイテムの名前を設定します(例:
currentItem)。 - ループ内に行いたい処理を追加します。
使用例:Excelの行ごとに処理を行う
たとえば、Excelファイルの各行に対してメールを送信するシナリオを考えてみましょう。
- Excelファイルを開き、行データを「List」変数に格納します。
- 「For each」ループを設定し、リスト内の各行(
currentItem)に対して処理を行います。 - ループ内に「メール送信」アクションを配置し、
currentItemのデータをもとにメールを送信します。
3. Loopの使い方:指定回数の繰り返し処理
「Loop」ループは、特定の回数だけ繰り返し処理を行いたい場合に使用します。たとえば、「10回だけ指定の操作を行いたい」といったシンプルな繰り返しに適しています。
実際の使い方
- 「Loop」アクションをフローに追加します。
- 「反復回数」に、繰り返したい回数を入力します(例:5回、10回など)。
- ループ内に繰り返したい処理を追加します。
使用例:特定の回数だけメッセージを表示
たとえば、5回だけ「こんにちは」と表示させるシナリオを設定する場合:
- 「Loop」アクションの「反復回数」を5に設定します。
- ループ内に「メッセージを表示」アクションを追加し、「こんにちは」と入力します。
- フローを実行すると、5回だけメッセージが表示されます。
4. Whileの使い方:条件が満たされるまでの処理
「While」ループは、特定の条件が満たされる間、処理を繰り返したい場合に使用します。たとえば、「変数の値が10未満の間、処理を繰り返す」といった条件付きのループに適しています。
実際の使い方
- 「While」アクションをフローに追加します。
- 「条件」欄に、ループを繰り返す条件を入力します(例:変数
count < 10)。 - ループ内に繰り返したい処理を追加します。
使用例:特定の条件が満たされるまでカウントアップ
たとえば、変数countが10に達するまでカウントアップするシナリオ:
- 変数
countを初期値0で作成します。 - 「While」アクションの条件を「count < 10」に設定します。
- ループ内で「変数のインクリメント」アクションを使い、
countの値を1ずつ増加させます。 countが10に達すると、ループが終了します。
5. よくあるQ&A
Q1. 「For each」で、リストが空だった場合はどうなりますか?
A1. 「For each」ループは、リスト内にアイテムがなければ何も処理を行わずに終了します。したがって、エラーは発生せず安全にスキップされます。
Q2. 「While」ループの条件を間違えると、無限ループになりませんか?
A2. はい、条件を正しく設定しないと無限ループに陥る可能性があります。たとえば、「count < 10」に設定している場合、必ずcountが増加する処理を入れるなどして、条件がいずれ満たされるようにしましょう。
Q3. ループ内で処理をスキップしたい場合はどうすればいいですか?
A3. ループ内の一部の処理だけをスキップしたい場合は、「条件分岐」を使って特定の条件下で処理をスキップすることが可能です。また、Power Automate Desktopでは「次のループへ」などの専用アクションがないため、条件分岐を使って上手くコントロールしましょう。
Q4. 「For each」で現在のアイテムが何番目かを知る方法はありますか?
A4. Power Automate Desktopには、indexのような自動的にカウントアップされる変数はありませんが、自分で変数iを作り、ループの各回でインクリメント(+1)することで、現在のループが何番目かを追跡することができます。
Q5. ループの中でエラーが発生した場合、次のアイテムに進めますか?
A5. デフォルトでは、エラーが発生するとフロー全体が停止してしまいますが、Power Automate Desktopの「エラーハンドリング」機能を使うことで、エラーが発生しても次の処理を続けられるように設定することが可能です。
