Power Automate Desktop ループの使い方:3種のアクションの使い分けと制御方法
- 1. はじめに
- 2. 3つのループの「使い分け」
- 3. 設定方法
- 4. ループのコントロール(ループを途中で抜ける・次の処理へ飛ばす)
- 5. 「無限ループ」への対処と防止策
- 6. ループ内で生成される変数の活用テクニック
- 7. まとめ:エラーに強く、効率的な繰り返し処理を作るために
- 8. Power Automate Desktopを「最短」で習得したい方へ
- 9. 関連記事
- 9.1. 初心者向けの記事一覧
- 9.2. このアクションの活用例
- 9.2.1. メールマガジンを送信(Excelブックから1行づつメール送信)
- 9.2.2. 受信メールの内容をExcelブックに1行ずつ記録
- 9.2.3. メールの抽出対象を日付範囲で指定
- 9.2.4. Yahoo!JAPAN路線情報から交通費を自動取得
- 9.2.5. PDFの内容をテキストファイルに保存
- 9.2.6. Excelブックの郵便番号から住所を検索して自動記入
- 9.2.7. URLパラメータをデータリストに変換する方法
- 9.2.8. 数値のリストに順位(ランキング)をつける方法
- 9.2.9. 偏差値を取得する方法
- 9.2.10. 最小公倍数・最大公約数を取得を取得する方法
- 9.2.11. 中央値を取得する方法
- 9.2.12. 標準偏差を取得する方法
- 9.2.13. 最頻値を取得する方法
- 9.2.14. Excelブックにシート名の目次を作成する
- 9.2.15. 基本的なテキストファイルの自動操作
- 9.2.16. Excelブックを特定条件で行を削除する
- 9.2.17. Excelブックに1行ずつ空白行を挿入
- 9.2.18. Excelブックにシート名の目次を作成する
- 9.2.19. Excelブックの複数行または複数列を削除する方法
- 9.2.20. ChatGPTとPADによるメール仕分け・要約
- 9.2.21. Yahoo!ニュース自動化ガイド:Power Automate DesktopとAIで記事要約・キーワード抽出を効率化
はじめに
Power Automate Desktop(PAD)で「ループ(繰り返し)」を使いこなせるようになると、数百件あるデータ入力や、大量のファイル操作をすべて自動で行えるようになります。
手作業では時間がかかる単純作業を、ミスなく、短時間で終わらせるための鍵が「ループ」の活用です。
概要解説動画
3つのループの「使い分け」
PADには3つのループ方法(アクション)がありますが、どれを使うかは「何を繰り返したいか」で決まります。
| やりたいこと | 使うアクション | 具体的なシーン |
|---|---|---|
| リスト・データテーブル、Excelなどの全データを処理したい | For each | 名簿の全員にメールを送る、Excelの全行をシステムに入力する |
| 決まった回数だけ繰り返したい | Loop | 指定の回数、繰り返します。 |
| 特定の状態になるまで続けたい | ループ条件 | 指定の条件を満たす間、繰り返します。 |
設定方法
Loop:指定した回数だけ繰り返す
「Loop」は指定の回数、繰り返します。
利用するには「ループ」の「Loop」をドラッグします。


例えば「開始値」を1、「終了」を10、「増分」を1にすると10回繰り返します。この例では固定値ですが、変数を指定すると状況に合わせたループ回数になります。


生成された変数(初期設定のままでLoopIndex)には、ループ回数が設定されます。
下のでは1(開始値)から10(終了)までのメッセージボックスが10回表示されます。


「開始値」が10、「終了」が1、「増分」が-1でも10回繰り返します。
この場合、LoopIndexは10からカウントダウンしていきます。


この「Loop」は単純なカウントアップ・ダウンで利用し、そこから外れる場合は他のループの方を利用します。
ループ条件:条件を満たす間繰り返す
「ループ条件」は指定の条件を満たす間、繰り返します。
利用するには「ループ」の「ループ条件」をドラッグします。


Ifと同様に条件を設定します。この条件がTrueな限り繰り返します。


無限ループを未然に防ぐ設定のポイント
「ループ条件」を使用する際、最も注意すべきなのは、「いつかは条件が満たされなくなる(Falseになる)仕組み」をループの中に作っておくことです
変数の更新を忘れない:
例えば、「変数 が True になるまで繰り返す」という条件を設定した場合、ループの中で 変数 をTrueに更新する処理を入れ忘れると、条件は永遠に満たされず、処理が止まらなくなります。
動作確認時:
正しく変数が更新されているか不安な場合は、ループの中に「メッセージを表示」アクションを入れ、現在の変数の値を表示させるようにします。
これにより、意図通りに数値が変化しているかを目で確認しながらデバッグ(修正)が可能です。
「メッセージを表示」アクションではなく、「End」にブレークポイントを設定して変数ペインの内容を表示するのも有効です。
For each:リストや表を順番に処理する
「For each」はリストやデータテーブルの全行を繰り返します。
利用するには「ループ」の「For each」をドラッグします。




生成された変数(初期設定のままではCurrentItem)には、
その時の項目が格納されます。
下の例ではリスト[10,20,30,40,50]に対して繰り返しを行い、
10,20,30,40,50がメッセージボックスに表示されます。(5回の繰り返し)


Excelデータ処理との抜群の相性
Excelを使った自動化では、「Excelワークシートから読み取る」アクションを使って、シートの内容をデータテーブル形式で変数に格納するのが一般的です。
このデータテーブルを「For each」に指定するとで、PADは自動的に1行目から最終行までを順番に読み取ってくれます。回数を指定する必要がないため、データの件数が毎日変わるような業務でも、設定を変更せずにそのまま使い続けることが可能です。


For eachを使う際、最も重要なのが、自動的に生成される変数 %CurrentItem% の扱いです。
これには「現在処理している1行分のデータ」が丸ごと入っています。
特定の列のデータ(例:顧客名や金額)だけを取り出したい場合は、以下のように記述します。
- 列名で指定する場合(「範囲の最初の行に列名が含まれています」をON):
%CurrentItem['列名']% - 列番号で指定する場合(「範囲の最初の行に列名が含まれています」をOFF):
%CurrentItem[0]%(※一番左の列は 0 から数えます)
このように記述することで、「1行目の名前をコピーしてシステムに入力し、次に2行目の名前をコピーする……」といった動作がスムーズに実現できます。
ループのコントロール(ループを途中で抜ける・次の処理へ飛ばす)
ループ処理は基本的に最後まで繰り返されますが、実務では「目的のデータが見つかったから途中で止めたい」あるいは「特定の条件の時だけ処理をスキップしたい」といった場面が頻繁にあります 。
こうした流れを制御するために、PADでは2つのアクションを使い分けます 。
これらは先述の3種類のループアクションの中に設置します。
| アクション | 動作のイメージ | 主な使いどころ |
|---|---|---|
| 次のループ | その場でループを終了し、次の工程へ進む(Continue) | 検索していたデータが見つかった、エラーが発生した |
| ループを抜ける | 今の回だけスキップし、次の回の処理へ進む(break) | 特定の行(空行など)だけ処理を飛ばしたい |
基本的には何らかの条件(IfやSwitch)を満たす場合に利用します。
動きの比較のためLoopIndex=3が条件という、簡単な例で紹介していますが、
実際には何らかのエラーなど、もっと複雑な条件で行うことになります。
次のループ(コンティニュー)
「次のループ」は、ループ自体は継続しますが、その回における「これ以降の処理」をスキップして、すぐに次のデータの処理に移る機能です 。
- 具体的な活用シーン
- 顧客リストを順番に処理している際、備考欄に「対象外」と書かれている行だけ、メール送信などの処理を飛ばして次の顧客へ移りたい場合に有効です。
- 設定のポイント
- 例えば、10回繰り返すループの中で「3回目だけ処理を飛ばす」といった制御が可能です 。
- これにより、不要なエラーを回避し、必要なデータだけを正確に処理する「精度の高い自動化」が実現します。
利用するには「ループ」の「次のループ」をドラッグします。
下のフローは「次のループ」がなければ10回、メッセージボックスが表示されますが、
「次のループ」の作用でLoopIndexが3の時だけ飛ばします。(9回表示)


ループを抜ける(ブレーク)
「ループを抜ける」は、後続のアクションをすべて飛ばして、ループそのものを終了させる機能です 。
- 具体的な活用シーン
- 大量のテキストデータから特定の受注番号を探している際、目的の番号が見つかった瞬間に処理を打ち切ることで、実行時間の短縮(効率化)に繋がります。(Excelの場合、検索アクションが存在するため、そちらを利用する方が効率的です)
- 設定のポイント
- 基本的には「If」アクションと組み合わせて使用します 。
- 「もし目的の条件を満たしたら」→「ループを抜ける」という流れを作るのが一般的です。
- 無限ループの停止手段
- 意図的に「ループ条件」を「1=1(常に正しい)」などの終わらない設定にし、特定の条件が満たされた時だけ「ループを抜ける」で終了させるというテクニックもあります 。
利用するには「ループ」の「ループを抜ける」をドラッグします。
下のフローは「ループを抜ける」がなければ10回、メッセージボックスが表示されますが、
「ループを抜けるの作用で2回表示してから、ループを終了します。


「ループ条件」を1=1のような終わらない条件にして
「ループを抜ける」を終了条件にする使い方もあります。


「無限ループ」への対処と防止策
ループ処理を扱う上で、最も注意すべきなのが「無限ループ」です。万が一、処理が止まらなくなった場合の停止方法と、そうならないための作り方を解説します。
実行中のフローを強制停止する方法
フローが意図せず繰り返され、止まらなくなった場合は、以下の操作で強制停止できます。
PADのコンソール画面で停止: 実行中に表示されるステータスバー、またはコンソール画面にある「停止」ボタン(四角のアイコン)をクリックします。


またはショートカットキー: Shift + F5を押すことでも停止が可能です。
無限ループを防ぐ「安全設計」の考え方
回数が決まっているなら「Loop」を使う:
回数を指定する「Loop」アクションは、PADが自動的に回数を数えてくれるため、無限ループになる心配がありません。
「10回繰り返す」「1番から100番まで処理する」といった場合は、必ずこのアクションを選びましょう。
「ループ条件」を使う時の注意点:
「画面が切り替わるまで繰り返す」「変数が〇〇になるまで続ける」といった「ループ条件」を使う場合は、注意が必要です。
条件が満たされない限り、PADはずっと処理を続けてしまいます。
よくある失敗例: ループの中で「回数を数える変数」を増やし忘れてしまい、いつまでも条件(例:10回に達するまで)を満たさない。
全て「Loop」で代用する(セーフティ設計)
安全なフローを作りたい場合は、「ループ条件」を使わずに「Loop」で代用する方法がおすすめです。
手順:
「Loop」アクションで、絶対に超えないであろう大きな回数(例:1000回)を設定する。
ループの中に「If」アクションを入れ、本来の終了条件(例:データが見つかった、など)を設定する。
条件を満たしたら「ループを抜ける」を実行する。
この方法のメリットとデメリット:
万が一、システム側の不具合などで終了条件が一生満たされない状態になっても、1000回に達した時点でフローが確実に終了します。「何があっても無限に走り続けることはない」という、非常に安定した設計になります。
ただし何を意図した回数なのか、意味がわかりにくいフローとなるためコメントに「無限ループ対策として上限回数を設定」していることを説明することを推奨します。
ループ内で生成される変数の活用テクニック
Power Automate Desktop(PAD)のループアクションを使用すると、特別な設定をしなくても「今実行しているデータ」や「現在の回数」を記憶するための変数が自動的に作成されます。これらを使いこなすことが、効率的なフロー作成の鍵となります。
%LoopIndex%:今、何回目の処理かを把握する
「Loop」アクションを使用すると、標準で %LoopIndex% という変数が生成されます。
- 中身: 現在のループ回数(カウント)が数値として入っています。
- 実務での活用例:
- 進捗の記録: 「5件目の処理を開始します」といったログを出力したり、メッセージを表示したりする際に使用します。
- Excelの行指定: 「
%LoopIndex%行目のセルに書き込む」といった指定をすることで、順番にデータを入力する場所をずらしていくことができます。
Tips: 開始値に注意 ループの「開始値」を 1 に設定すれば %LoopIndex% も 1 から始まりますが、ITの慣習に合わせて 0 から始める設計にすることも可能です。ご自身の管理しやすい数値からスタートさせてください。
%CurrentItem%:取り出したデータを個別に扱う
「For each」アクションを使用すると、標準で %CurrentItem% という変数が生成されます。ここには、リストやデータテーブルの「現在処理している1行分のデータ」が丸ごと格納されています。
- 中身: 1行分のデータセット。
- データの取り出し方(重要):
%CurrentItem%そのままでは1行分のデータがすべて繋がった状態です。特定の項目だけを取り出すには、以下のように記述します。- 列の名前で選ぶ:
%CurrentItem['顧客名']%
- 左からの順番で選ぶ:
%CurrentItem[0]%
- 列の名前で選ぶ:
なお列名を利用できるかはデータを取得したアクションの設定にも寄ります。
応用:For each 内で「現在の行番号」を知る方法
実は「For each」には、LoopIndex のような「回数を数える変数」が自動では用意されません。しかし、実務では「For each で処理しながら、Excelの何行目に結果を書き込むか指定したい」という場面が多々あります。
このような場合は、以下の手順で「カウンタ変数」を自作します。
- ループの前: 「変数の設定」アクションで
%Counter%を 1(またはExcelのデータ開始行)に設定する。 - ループの中: Excel操作などで
%Counter%を行番号として利用する。 - ループの最後: 「変数を大きくする」アクションで
%Counter%を 1 増やす。
このひと工夫で、「For each でデータを取り出しつつ、処理結果を元のExcelの正しい行に書き戻す」という高度な操作が実現できます。
まとめ:エラーに強く、効率的な繰り返し処理を作るために
本記事では、3つのループアクションの使い分けから、安全な設計、変数の活用までを解説しました。
- 適切なアクションを選ぶ: データの種類や目的に合わせて、For each、Loop、ループ条件を使い分ける。
- 安全性を優先する: 無限ループを避けるため、あえて回数指定の Loop を使う「セーフティ設計」を検討する。
- 変数を活用する:
%LoopIndex%や%CurrentItem%を使いこなし、動的な処理を実現する。
ループはPADの心臓部とも言える機能です。これらを組み合わせることで、これまで手作業で行っていた膨大な業務を、正確かつ迅速に自動化できるようになります。まずは簡単な回数指定のループから、ぜひ実務に取り入れてみてください。
Power Automate Desktopを「最短」で習得したい方へ
「Webで情報を探す時間がもったいない」と感じていませんか
当サイトの人気記事を体系的に整理し、一冊の電子書籍にまとめました 。


ページをめくるだけで、基礎から応用まで階段を登るようにスキルアップできます。
オフラインでも読めるため、通勤時間や移動中の学習にも最適です。
【本書で学べること】
- 基本操作とフローの作成手順
- Excel、Outlook、Webブラウザの自動化 * 実務で必須のエラー処理と頻出テクニック
Kindle Unlimited会員なら追加料金なし(0円)でお読みいただけます。