繰り返し処理について
今回は繰り返し処理について以下の4種類を説明します。
- 繰り返し(前判定)
- 繰り返し(後判定)
- 繰り返し(コレクションの各要素)
- フロー条件分岐による繰り返し
上記の他にもは、繰り返し(各行)
という繰り返し処理がありますが、こちらはデータテーブルを扱うときに使用するため、データテーブルについて説明をした後に説明したいと思います。
それでは、実際にそれぞれどのように使うのか、どう違うのか説明していきたいと思います。
繰り返し(前判定)

Body
内の処理をする前に条件判定する。
処理を開始する前に条件判定をし、条件に合わない場合は処理をせず終了し、条件に合う間は処理を繰り返し行います。
処理開始時に条件に合わない場合は処理を行いたくないときに使用します。
繰り返し(後判定)

Body
内の処理をした後に条件判定する。
処理を開始して終了時に条件判定をし、条件に合わない場合は終了し、条件に合う間は処理を繰り返し行います。
とりあえず、必ず1回は処理を行いたいときに使用します。
繰り返し(前判定)と繰り返し(後判定)の違い
上記ではとてもざっくりと説明しました。
言葉で説明するよりも実際にやってみた方がわかりやすいと思います。
a < 5
という条件の間aを1ずつ加算する
という繰り返し処理で a
の初期値を 5
にして条件に合わない状態で前判定と後判定の両方を作成してみます。
※条件は全て終了条件ではなく、繰り返し条件です。条件がTrue
の間は繰り返し、False
になったら終了します。
前判定の場合
アクティビティ検索欄に「繰り返し」と入力するかワークフロー
-> 制御
-> 繰り返し(前判定)
から配置してください。
配置が完了したらCondition
に Ctrl + K で a
という変数を作成し、a < 5
と入力します。
作成出来たら変数一覧から a
の変数の型をInt32
にし、スコープをシーケンス
にし、既定値を 5
に設定します。

次に、Body
内に代入を配置します。
アクティビティのお気に入り
から配置するかワークフロー
-> 制御
-> 代入
から配置してください。
配置が完了したら代入にa = a + 1
となるように設定します。
次に「繰り返し(前判定)」の下にメッセージボックスを配置します。
アクティビティ検索欄に「メッセージボックス」と入力するかシステム
-> ダイアログ
-> メッセージボックス
から配置してください。
配置が完了したらa.ToString
を設定します。

それでは実行してみます。

“5”と表示されました。
代入処理のa = a + 1
は実行されていません。
このようにaが既に5以上の数値である
のように条件を達していないときは処理を行いたくない場合は前判定を使います。
次は同じ処理を後判定でやってみます。
後判定
アクティビティ検索欄に「繰り返し」と入力するかワークフロー
-> 制御
-> 繰り返し(後判定)
から配置してください。
後は全て先ほどの前判定
と同じように設定します。

設定が完了したら実行してみます。

“6”が表示されました。
代入処理のa = a + 1
が実行されました。
このようにaが既に5以上の数値である
のように条件を達していないときも必ず処理を一度は実行したい場合は後判定を使います。
これで繰り返しの前判定と後判定の処理については終了します。
繰り返し(コレクションの各要素)

こちらは配列(Array of <T>)
やリスト(List <T>)
データの数だけ繰り返し処理したい場合に使用します。
実際に繰り返し(コレクションの各要素)を使用して確認します。
指定のフォルダ内にあるファイル名を配列として取得し、全て表示する処理を作成します。
まず、「フォルダー選択」と「代入」アクティビティを配置します。
一旦、先ほど使用したものは削除してください。
アクティテビィ検索欄にそれぞれ入力するかシステム
-> ダイアログ
-> フォルダー選択
ワークフロー
-> 制御
-> 代入
またはお気に入り
から配置してください。
配置が完了したら、「フォルダー選択」のプロパティで「選択されたフォルダー」に
[Ctrl + K]で変数を新規作成し、selected_folder
を入力してください。
代入には以下のように入力してください。file_list = Directory.GetFiles(selected_folder)
file_list
は Ctrl + K で変数を新規作成してください。
入力が完了したら変数一覧でfile_list
の変数の型をArray of
のString
を選択します。

次に「繰り返し(コレクションの各要素)」を配置します。
アクティビティ検索欄に「繰り返し」と入力するかワークフロー
-> コントロール
-> 繰り返し(コレクションの各要素)
から配置してください。
配置が完了したら、「コレクション」にfile_list
を入力します。

最後に「本体」の中に「1行を書き込み」を配置します。お気に入り
-> 1行を書き込み
から配置するかプログラミング
-> デバッグ
-> 1行を書き込み
から配置してください。
配置が完了したら「Text」にitem.ToString
を入力してください。

これで全ての処理の設定が終了しました。
実行する前に選択するフォルダを決めておいてください。
ここではデスクトップに「UiPath入門編④」というフォルダを作成し以下の3つのテキストファイルを作成して実行します。
- aaa.txt
- bbb.txt
- ccc.txt

それでは実行してみます。

このようにフォルダを選択する画面が出てくるので、任意のフォルダを選択してください。

UiPath画面左下の出力をクリックするとこのように1行を書き込み
で設定した処理結果が表示されます。
ファイルの数だけ表示されていることが確認出来ました。
これで繰り返し(コレクションの各要素)については終了します。
フロー条件分岐による繰り返し
こちらはUipath入門編② フロチャートとシーケンスについてで少し説明しました。
今回はa > 5
の間aを1ずつ加算する
という処理を作成します。
まず、フローチャートとフロー条件分岐を配置します。
先ほど使用したものは一旦削除するか新規作成してください。
アクティビティ検索欄に「フローチャート」と入力するかワークフロー
-> フローチャート
-> フローチャート
とフロー条件分岐
から配置してください。
次に「Start」の下に代入を配置してください。
配置が完了したら、代入には以下のように入力してだくさい。a = a + 1
a
は[Ctrl + K]で変数を新規作成してください。
入力が完了したら、変数一覧で a
の変数の型をInt32
に、既定値を 0設定してください。

次にフロー条件分岐のプロパティで「条件」にa > 5
と入力し、フローの矢印を以下の画像のように設定してください。

最後に、メッセージボックスをフロー条件分岐の下に配置します
アクティテビィ検索欄に「メッセージボックス」と入力するかシステム
-> ダイアログ
-> メッセージボックス
から配置してください。
配置が完了したら以下の内容でメッセージボックスのプロパティを入力してください。
項目 | 設定内容 |
---|---|
キャプション | “繰り返し結果” |
テキスト | a.ToString |
ボタン | Ok |
入力が完了したら、以下の画像のようにフローの矢印を設定してください。

これで全ての処理の設定が終了しました。
それでは実行します。

このようにフロー条件分岐でFalse
の矢印をフロー条件分岐よりも前の処理に繋げるとTrue
になるまで繰り返し処理を設定するこが出来ます。False
になるまでというように逆も可能です。
これでフロー条件分岐による繰り返し処理については終了します。
最後に
これで繰り返し処理についての説明は終了します。
種類が複数あるため、処理によって使い分けましょう。
UiPath入門編は今回で終了します
次回からはUiPathのデータ操作編です。
コメント