【初心者向け】Power Automate Desktopの反復処理を理解しよう

  • URLをコピーしました!

Power Automate Desktop(PAD)で繰り返し作業を自動化する際に欠かせないのが「反復処理(ループ処理)」です。ループを活用することで、リストやデータテーブルの処理、カウントダウン、繰り返し条件に応じた処理 などが可能になります。

この記事では、Loop文、While文、For Each文の基本と、カウントダウンの処理、ループの強制終了やスキップの方法 について詳しく解説します。


目次

反復処理とは?

反復処理(ループ) とは、同じ処理を繰り返し実行するプログラムの仕組み です。

例えば、次のような場面で使えます。

  • 10回メッセージを表示する
  • リストの中のすべてのデータを処理する
  • 特定の条件を満たすまで処理を続ける
  • カウントダウンを行う

PADでは、以下の反復処理が用意されています。

反復処理の種類特徴
Loop文指定した回数だけ繰り返す
While文条件がTrueの間、繰り返す
For Each文リストやデータテーブルの各要素を処理する

Loop文(指定回数のループ)

Loop文を使うと、指定した回数だけ繰り返し処理を実行 できます。

基本の使い方

  1. 「Loop」アクションを追加
  2. 繰り返す回数を指定(例:5回)
  3. ループ内に実行するアクションを追加(例:メッセージを表示)
Loop 5 回
メッセージを表示 ("ループ中: %LoopIndex%")
End Loop

ここで %LoopIndex% は、現在のループの回数を示します。(1回目なら1、2回目なら2…)

応用:10回メッセージを表示

Loop 10 回
メッセージを表示 ("%LoopIndex%回目の実行です")
End Loop

カウントダウンの反復処理

カウントダウンを行うには、変数を使って値を減らしながらループする 方法を使います。

カウントダウンの例(5から1まで)

変数 カウント = 5

Loop %カウント% > 0
メッセージを表示 ("カウントダウン: %カウント%")
変数 カウント = %カウント% - 1
End Loop

この処理では、カウントが 5→4→3→2→1 と減り、最終的に0になるとループが終了します。


強制終了、スキップ、実行遅延

ループ内の処理を途中で変更するために、以下の操作ができます。

アクション説明
Break(強制終了)ループを途中で終了する
Continue(スキップ)ループの次の繰り返しへ進む
実行遅延(Wait)一定時間待機する

Break(ループの強制終了)

特定の条件を満たしたらループを終了する方法です。

例:3回目でループを終了

Loop 10 回
If %LoopIndex% = 3 Then
Break
End If
メッセージを表示 ("%LoopIndex%回目の処理")
End Loop

→ 1, 2, 3回目の処理後に終了。


Continue(スキップ)

特定の条件を満たした場合、ループの残りの処理をスキップし、次の繰り返しに進む ことができます。

例:偶数回のみ処理をスキップ

Loop 5 回
If %LoopIndex% Mod 2 = 0 Then
Continue
End If
メッセージを表示 ("%LoopIndex% は奇数です")
End Loop

偶数(2, 4)はスキップ され、1, 3, 5 の時のみメッセージが表示されます。


実行遅延(Wait)

ループ処理の間に 一定時間待機する ことで、負荷を軽減できます。

例:毎秒カウントダウン

plaintextコピーする編集する変数 カウント = 5

Loop %カウント% > 0
    メッセージを表示 ("カウントダウン: %カウント%")
    実行遅延 1000 ミリ秒
    変数 カウント = %カウント% - 1
End Loop

1秒ごとにカウントダウンが進む ようになります。


While文(条件がTrueの間、繰り返す)

While文は 「条件がTrueの間、ループを繰り返す」 仕組みです。

基本の使い方

変数 X = 1

While %X% <= 5
メッセージを表示 ("Xの値: %X%")
変数 X = %X% + 1
End While

→ Xが1から5になるまで処理を繰り返します。


For Each文(リストやデータテーブルの処理)

リストやデータテーブルの各要素に対して、繰り返し処理を行う場合に使用します。

リストの各要素を処理

リスト MyList = ["りんご", "みかん", "ぶどう"]

For Each %アイテム% in %MyList%
メッセージを表示 ("現在のアイテム: %アイテム%")
End For Each

→ リストの中の「りんご」「みかん」「ぶどう」を順番に処理します。


データテーブルの各行を処理

データテーブル SalesData = [ [ "田中", 1000 ], [ "佐藤", 2000 ], [ "鈴木", 3000 ] ]

For Each %行% in %SalesData.Rows%
メッセージを表示 ("名前: %行["名前"]%、売上: %行["売上"]%")
End For Each

→ データテーブルの各行の「名前」と「売上」を取得します。

よくある質問(FAQ)

Q1. Loop文とWhile文の違いは?

A. Loop文「指定回数」繰り返す のに対し、While文「条件がTrueの間」繰り返す という違いがあります。

種類繰り返し条件使いどころ
Loop文決められた回数だけ繰り返す10回処理したい場合
While文条件がTrueの間、無限に繰り返すユーザーが「OK」を押すまで処理を続ける場合

例:Loop文(10回繰り返す)

Loop 10 回
メッセージを表示 ("%LoopIndex%回目の処理")
End Loop

例:While文(Xが5以上になるまで繰り返す)

変数 X = 1

While %X% <= 5
メッセージを表示 ("Xの値: %X%")
変数 X = %X% + 1
End While

Q2. For Each文はどんなときに使う?

A. リストやデータテーブルの各要素を順番に処理する場合 に使います。

例:リストの要素を1つずつ処理

リスト MyList = ["りんご", "みかん", "ぶどう"]

For Each %アイテム% in %MyList%
メッセージを表示 ("現在のアイテム: %アイテム%")
End For Each

このフローでは、「りんご」「みかん」「ぶどう」を順番に処理します。


Q3. ループの回数を途中で変更することはできる?

A. 可能ですが、変数を使って制御する必要があります。

例えば、「ユーザーが途中でキャンセルを押したらループを終了する」場合:

Loop 10 回
変数 ユーザーの選択 = メッセージを表示 ("続けますか?", [OK, キャンセル])

If %ユーザーの選択% = "キャンセル" Then
Break
End If

メッセージを表示 ("%LoopIndex%回目の処理")
End Loop

→ ユーザーが「キャンセル」を押すと、ループを途中で終了します。


Q4. ループの途中でスキップ(Continue)を使う場面は?

A. 特定の条件を満たした場合に、その回の処理を飛ばして次のループに進みたいとき に使います。

例:偶数の回だけスキップ

Loop 5 回
If %LoopIndex% Mod 2 = 0 Then
Continue
End If
メッセージを表示 ("%LoopIndex% は奇数です")
End Loop

2, 4の時はスキップされ、1, 3, 5の時だけメッセージが表示 されます。


Q5. カウントダウンをする最適な方法は?

A. While文を使うのが最も簡単です。

変数 カウント = 5

While %カウント% > 0
メッセージを表示 ("カウントダウン: %カウント%")
変数 カウント = %カウント% - 1
End While

→ カウントが「5→4→3→2→1」と減少し、0になると終了します。


Q6. ループの中に遅延(Wait)を入れるメリットは?

A. ループの処理を一定時間待機 させることで、システム負荷を軽減 したり、ユーザー操作の待機時間を作る ことができます。

例:1秒ごとにカウントダウン

変数 カウント = 5

While %カウント% > 0
メッセージを表示 ("カウントダウン: %カウント%")
実行遅延 1000 ミリ秒
変数 カウント = %カウント% - 1
End While

1秒ごとにメッセージが表示 されるようになります。


Q7. LoopIndexはどこで使える?

A. LoopIndexは、Loop文の中で現在のループ回数を表す自動変数 です。

Loop 5 回
メッセージを表示 ("現在 %LoopIndex% 回目の実行です")
End Loop

→ 「現在1回目」「現在2回目」…と、回数が表示されます。


Q8. ループが終わらない(無限ループ)を防ぐ方法は?

A. While文を使う場合、ループが必ず終了する条件を設定する ことが大切です。

無限ループの例(変数が増えない)

変数 X = 1

While %X% > 0
メッセージを表示 ("Xの値: %X%")
End While

このままだと Xが変化しないため、永遠にループが続く ので注意が必要です。

正しい方法(Xを増やして終了条件を満たす)

変数 X = 1

While %X% < 5
メッセージを表示 ("Xの値: %X%")
変数 X = %X% + 1
End While

Xが5になったらループが終了する ので、無限ループを防げます。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次