UiPath 繰り返し(ループ)処理を行う様々な方法

UiPathにおいて特定回数や指定条件の限り、

同様の処理を繰り返す(ループ)場面が多々発生します。

この記事では、その方法を紹介します。

手順

任意の回数を繰り返す

まずアクティビティは「繰り返し(前判定)」か「繰り返し(後判定)」を選び設置します。

そしてBodyの中のシーケンスに繰り返したい処理を設置します。

繰り返し(前判定)」の場合は、最初の時点で条件を満たしていると

ここの内容は1度も実行されませんが、「繰り返し(後判定)」は最低1回は実行されます。

次にカウンター変数(繰り返しの回数を数える変数)を用意します。

項目設定
名前任意
変数の型Int32(整数なら他の方でも良いが基本的にはInt32)
スコープ・繰り返しのアクティビティ。
・他の場所でも使用する場合は全体のシーケンス
(サンプルでは表示のため、全体のシーケンスにしています)
規定値1か0。配列のインデックスに利用する場合は0

次に「代入」を繰り返しに設置します。位置は基本的に繰り返しの末尾です。

代入ではカウンター変数を1増やします。

項目設定値
右辺値(Value)カウンター変数+1
左辺値(To)カウンター変数

繰り返しの条件を設定すれば完了です。

カウンター変数の規定値条件指定
0カウンター変数 < 繰り返す回数
1カウンター変数 <= 繰り返す回数

下の例では10回繰り返します。

コレクション(配列)の要素数、繰り返す

コレクションや配列の要素数分繰り返すには、

繰り返し(コレクションの各要素)」を利用します。

(プログラミングのfor eachに該当)

項目設定
TypeArgument繰り返しの対象とする配列・コレクション変数の変数の型
コレクション値繰り返しの対象とする配列・コレクション変数

データテーブル(Excel、CSV、TSVファイル、Webブラウザの表)の行数、繰り返す

まずファイルの内容をデータテーブル変数に取り込みます。

取り込みはExcelの場合は「Excel 範囲を読み込み」、CSVやTSVの場合は「CSVを読み込み」、

Webブラウザの表の場合は「データスクレイピング(構造化データを抽出)」を使用します。

そして取り込んだデータテーブル変数を「繰り返し(各行)」でループさせます。

(手順の詳細は各アクティビティのリンク先記事参照)

繰り返しの制御

次の繰り返しへ移行(コンティニュー)

コンティニューはその回の繰り返しを途中で終了し、次の繰り返しに進みます。

繰り返し(コレクションの各要素)」や「繰り返し(各行)」であれば

繰り返しをコンティニュー」を利用します。

繰り返し(前判定)」か「繰り返し(後判定)」には

繰り返しをコンティニュー」を利用できないため

条件分岐」で実施するかしないかを制御するしかありません。

コンティニューしたい箇所が増えると「条件分岐」が重なってシーケンスが読みづらくなるため

そのうちこのあたりにも改修が入るのではと考えています。

中断(ブレーク)

ブレークは繰り返しを終了させます。

コンティニューと違い繰り返しが残っていても全て終了するため

繰り返しの条件以外でも何らかのタイミングで終了したい場合に利用します。

繰り返し(コレクションの各要素)」や「繰り返し(各行)」であれば

繰り返しをブレーク」を利用します。

繰り返し(前判定)」か「繰り返し(後判定)」には

繰り返しをブレーク」を利用できないため

条件分岐」で実施するかしないかを制御した上で、繰り返しの終了条件に加えるしかありません。

(Boolean型変数を利用すると条件式が一つで済むため推奨です)

ブレークしたい箇所が増えると「条件分岐」が重なってシーケンスが読みづらくなるため

そのうちこのあたりにも改修が入るのではと考えています。

例外処理(トライキャッチ)

エラー発生時に繰り返しを中断(ブレーク)

トライキャッチの中に繰り返しのアクティビティを置くと

エラー発生時に繰り返しから離脱します。

(エラー発生も繰り返しの終了条件になる)

エラー発生時に繰り返しを継続(コンティニュー)

繰り返しの中にトライキャッチのアクティビティを置くと

エラー発生時にその回の処理のみ終了し、次の繰り返しに移行します。

(エラー発生が繰り返しの終了条件にならない)

関連記事