★質問・概要
Q.JobAutoで同じアクションを繰り返し実行しています。一定の条件を満たしたら、繰り返しを終了するにはどうすればよいですか?
★回答
はい。条件を判定して、繰り返し処理を終了できます。終了方法は、ブックマークへジャンプして繰り返す場合と、Excelの行ループなどの繰り返しアクションを使う場合で異なります。
- ブックマークへジャンプする構成:条件を満たしたときに「後続処理をしない」を実行し、末尾の「ブックマークへジャンプ」を実行させないようにします。
- 繰り返しアクションを使う構成:繰り返しの中に「変数の値を評価」を配置し、条件を満たした場合の対処を「繰り返し処理をやめる」にします。
「ブックマーク」「ブックマークへジャンプ」は、以前の「フラグ」「フラグへジャンプ」に対応する現在のアクションです。ブックマークの設置方法もご確認ください。
1.ブックマークへジャンプして繰り返す場合
同じ処理の先頭へ戻ることで繰り返し実行している場合は、ブックマークと条件判定を次の順に配置します。
ブックマーク(繰り返し開始位置) ↓繰り返したい処理 ↓変数の値を評価(終了条件を判定) ↓ 条件を満たしていない場合のみブックマークへジャンプ(先頭に戻る)
条件を満たした場合は「後続処理をしない」を選択します。これにより、判定アクションの後ろにある「ブックマークへジャンプ」が実行されず、先頭へ戻る繰り返しを終えられます。
- 処理を繰り返したい位置に「ブックマーク」を設置します。
- ブックマークの後ろに、繰り返したい操作を配置します。
- 操作結果や繰り返し回数など、終了条件の判定に使う値を変数に格納します。
- 続けて「変数の値を評価」を配置し、左辺・条件式・右辺を指定して終了条件を判定します。
- 条件を満たした場合は「ハンドリング処理」を選び、その「対処」を「後続処理をしない」にします。条件を満たさない場合は「継続処理」にします。
- 判定アクションの後ろに「ブックマークへジャンプ」を配置し、最初のブックマークを移動先に指定します。
- 全実行で、条件を満たすまで繰り返し、条件を満たしたらジャンプせずに終了することを確認します。
「後続処理をしない」は、そのブランチの後続アクションを実行しない設定です。別のブランチがある場合は次のブランチに処理が移るため、ロボット全体が必ず終了するわけではありません。必要な後処理の位置も確認してください。
設定項目は、変数の値を判定して後続処理をしない方法、ジャンプの設定はブックマークへジャンプする方法を参照してください。
2.Excelやブラウザの繰り返しアクションを使う場合
Excelの「行の繰り返し」やブラウザの「要素の繰り返し処理」などを使用している場合は、繰り返しの中で「変数の値を評価」→「繰り返し処理をやめる」を設定します。ブックマークへジャンプする必要はありません。
- 繰り返しアクションを作成し、その中で判定に必要な値を変数に格納します。
- 繰り返し範囲内に「変数の値を評価」を配置します。
- 左辺に判定用の変数を設定し、条件式と右辺を指定します。
- 終了条件を満たした場合は「ハンドリング処理」を選択します。
- 「ハンドリング処理」の「対処」で「繰り返し処理をやめる」を選択します。条件を満たさない場合は「継続処理」にします。
- 条件を満たしたところで残りの繰り返し対象が処理されず、ループを抜けるかテストします。
詳しくは、JobAutoで変数を判定して繰り返し処理をやめる方法をご確認ください。Excelの空白行でループを終了する具体例は、Excelのループ処理を途中で終わらせたいで紹介しています。
3.終了条件の設定例
たとえば、繰り返し実行している処理で、変数「処理結果」の値が「完了」になったら終了したい場合、次のような判定を設定します。
| 項目 | 設定例 |
|---|---|
| 左辺 | 変数「処理結果」 |
| 条件式 | = |
| 右辺 | 完了 |
| 条件を満たした場合 | ハンドリング処理 |
| 条件を満たさない場合 | 継続処理 |
| ハンドリング処理の「対処」 | ブックマーク方式は「後続処理をしない」、標準の繰り返し方式は「繰り返し処理をやめる」 |
繰り返し処理の中で判定する値が毎回更新されていることを確認してください。同じ値のまま判定すると、意図せず早く終了したり、終了条件を満たせず繰り返し続けたりする場合があります。
4.「繰り返し処理をやめる」と「次の繰り返し処理に移動する」の違い
| 設定 | 動作 |
|---|---|
| 後続処理をしない | 現在のブランチ内の後続処理を実行しません。ブックマークへ戻るアクションを実行させない場合に利用できます。 |
| 繰り返し処理をやめる | 標準の繰り返しアクションの処理を中断し、残りの繰り返し対象を処理しません。 |
| 次の繰り返し処理に移動する | 現在の対象の残りのアクションをスキップし、次の繰り返し対象へ進みます。 |
繰り返しを完全に終わらせたい場合は「次の繰り返し処理に移動する」ではありません。処理対象を1件だけ飛ばしたい場合と区別してください。
5.繰り返しが終了しない場合の確認事項
- 終了条件:変数の値が実際に更新され、左辺・条件式・右辺が想定どおりになっているか。
- 判定結果:条件を満たした側が「ハンドリング処理」、それ以外が「継続処理」になっているか。
- ブックマーク方式:判定アクションより後ろに「ブックマークへジャンプ」があり、条件を満たした際に実行されない位置関係になっているか。
- 標準のループ方式:判定アクションが繰り返し範囲内にあり、ハンドリング処理の対処が「繰り返し処理をやめる」になっているか。
- 別ブランチ:「後続処理をしない」で次のブランチへ移る場合、その先に再度ジャンプする処理がないか。
- 終了条件の未成立:ブックマーク方式では同じ処理を繰り返し続ける可能性があります。必要に応じて最大試行回数やタイムアウトなどの終了条件を設けてください。
繰り返しを終了したあとの後処理が必要な場合は、終了後に実行させたいアクションの位置も確認してください。
関連するマニュアル・FAQ
- JobAutoでブックマークを設置する方法:繰り返しの開始位置となるブックマークの作成
- JobAutoでブックマークへジャンプする方法:指定したブックマークへ処理を戻す設定
- JobAutoで変数の値を判定して後続処理をしない方法:ジャンプを実行せずに処理を終える条件設定
- JobAutoで変数を判定して繰り返し処理をやめる方法:Excelやブラウザなどの標準ループを途中で終了する設定
- Excelのループ処理を途中で終わらせたい:Excelの空白行などを終了条件にするFAQ
- JobAutoの繰り返し処理マニュアル:繰り返しアクションの一覧と関連する設定
