UiPathの使い方⑤繰り返し処理をデータテーブルを用いてつくる。

UiPathの使い方⑤繰り返し処理をデータテーブルを用いてつくる。

本記事は繰り返し方法を解説します。
※2022/12/17 閲覧者様からご要望で変数作成の解説を追加致しました。

データテーブルを用います。
※データテーブルとは表形式データのことでExcelファイルやCSVファイルもそ
 れになります。下記を参考にしてみてください。



それでは順を追って解説します。
※繰り返し処理だけ調べたい方は4.作成したExcelデータをデータテーブルに格納、5.繰り返し設定だけお読みください。

  1. Excelデータの作成

  2. 新規プロセスを作成する

  3. システムを立ち上げる

  4. 作成したExcelデータをデータテーブルに格納

  5. 繰り返し設定

  6. 格納されたデータをシステムに入力する

  7. システム操作

1.Excelデータの作成


読み込み元データを作成します。
下記のようなExcelデータをご用意ください。

ファイル、シート名は任意で大丈夫です。
ここではBook1,Sheet1になっています。

システムはyahoo路線情報を利用しますので、駅名を3行分入力してください。
A列は出発駅でB列は到着駅という想定です。


2.新規プロセスを作成する


新しくプロセスを作りましょう。
winactorでいうシナリオというやつです。
名前はなんでもOKです。
私は繰り返しとしました。


3.システムの立ち上げる


システムはyahooの路線案内を利用します。

※注意事項としてブラウザはIEで開きます。
その他ブラウザで開きたい場合、拡張機能をインストールする必要があります。

利用可能→UI Automation→ブラウザー→ブラウザーを開くを
図のようにドラッグアンドドロップしてください。




以下のようにURLを入力します。
“”でくくるのを忘れないようにしてください。

4.作成したExcelデータをデータテーブルに格納


利用可能→アプリの連携→Excel→Excelアプリケーションスコープを
図のようにドラッグアンドドロップしてください。
※どのExcelファイルを利用するかを設定するために用います。




作成したExcelファイルのパスを入力してください。




利用可能→アプリの連携→Excel→範囲を読み込みを
図のようにドラッグアンドドロップします。



読み込み範囲を設定します。
シート名と範囲を設定します。
右側は””となっています。このままでもOKです。
自動的にデータ範囲を読み込んでくれます。

読み込みセル範囲を記述してもよいでしょう。
※範囲指定しますと可変するファイルには対応できませんのでご注意ください。




範囲を読み込みのプロバディをみて下さい。
※クリックすれば表示されます。
下図にヘッダーを追加とあります。
読み込みExcelファイルはヘッダーをつけていませんのでチェックをはずします。



次に読み込んだデータの出力先を設定します。
読み込まれたデータは先ほど作って頂いた2列3行の駅名データです。
画面下にある変数をクリックします。

  1. データを格納する変数:駅名テーブルを設定します。
  2. 変数の型を宣言します。
    ※変数にはInt、String等型を設定する必要があります。
     今回は表形式データですのでDataTableと設定します。
  3. スコープは変数の適応範囲です。シーケンスという中にアクティビティが入っているかと思います。その範囲内で駅名テーブルが利用できるという意味です。
    ※もう一度変数をクリックすると閉じることができます。



出力先を設定します。
出力から〇の中に十字マークがあるボタンをクリックして変数を使用を選びますと作成した駅名テーブルが選択できます。



※尚、以下のようにシーケンス2という範囲にいれてしまいスコープをシーケンスとしてしまうとシーケンス2では駅名テーブルは利用できませんのでご注意ください。




5.繰り返し設定


利用可能→プログラミング→データテーブル→繰り返し(データテーブルの各行)を追加します。
ここでは繰り返し設定をします。最重要です。
尚、次のコレクション内の各要素は先ほど設定した変数:駅名テーブルを入力してください。
※繰り返しのCurrentRowは行数が入力されます。今回の場合初期値は1となり
 ます。ユーザ側では特に設定する必要はありません。




※これまでの作業をちょっとまとめてみます。

  • Excelアプリケーションスコープでは対象となるExcelファイルを指定します。

  •  範囲を読み込みではシート名(Sheet1)を読み込みました。
    プロバティから変数:駅名テーブルにSheet1のデータを格納しました。

  • 繰り返し(データテーブルの各行)では駅名テーブルをデータ分繰り返すということです。
    CurrentRowは行を意味します。
    下図では1回目のループは1行目を参照(CurrentRowは1)し、2回目のループでは2行目を参照(CurrentRowは2)します。今回は3行目で終わりです。
    最終的にはCurrentRowは3となります。




Excelの値を取得します。
利用可能→プログラミング→データテーブル→行項目を取得を追加します。
プロバティを表示します。

  • 行には変数:CurrentRowを入力します。
    ※CurrentRowは1行目、2行目と自動でカウントアップします。
     初期値は1です。設定は不要です。
  • 列には数字にチェックして0を入力します。
    ※0というのはA列を意味します。
     つまりA1の値を取得するという意味です。



値を格納する変数設定します。
方法は変数:駅名テーブルを設定した時と同様です。
変数から作成します。
型ですが今回はStringとします。
※変数の型については別途解説します。



値に作成した出発駅名を設定します。
出発駅名にA列のデータが順番に格納されることになります。




行項目を取得のプロパティをみてみましょう。
下記のようになっていればOKです。


6.格納されたデータをシステムに入力する


次に利用可能→UI Automation→要素→キーボード→文字を入力をドラッグアンドドロップしてください。




文字を入力アクティビティ内の画面上で指定を選択します。
yahoo路線情報の出発を選択します。
※下記のように青色になれば選択されています。



入力前にクリックをTrueにします。
テキストに変数:出発駅名を入力します。




同様に到着駅も取得したいので
利用可能→プログラミング→データテーブル→行項目を取得を追加します。
※一度使ったアクティビティは最近という項目内にあります。




プロパティから詳細設定します。

  • 列インデックスに1を入力
    ※1というのはB列を意味します。

  • 行には変数:CurrentRowが入力されています。
  • ※CurrentRowは1行目、2行目とカウントアップします。

  • 出力の値は変数:到着駅名を設定
    ※わかりやすいように先ほどと変数名を変えます。
    1回目の処理でB列1行目の値を変数:到着駅名に入れるという事を意味しています。

次に先ほどと同様に利用可能→UI Automation→要素→キーボード→文字を入力をドラッグアンドドロップしてください。

画面上で指定を選択します。
yahoo路線情報の到着を選択します。




入力前にクリックをTrueにします。
変数:到着駅名を入力します。


7.システム操作



検索ボタンをクリックしてから新しくyahoo路線情報を開く操作も加えます。
利用可能→UI Automation→要素→マウス→クリックをドラッグアンドドロップしてください。
その後画面上で指定をクリックします。





検索ボタンを選択します。




最後に、ブラウザ開くアクティビティを追加します。
これをしないと2行目の検索がされません。
※最後に不要に一回ブラウザが開いてしまいます。本当はブラウザ開くアクティビティを繰り返しの最初に投入するべきなのですが繰り返し処理を簡潔に説明するためにこのようなつくりになっております。




以下プログラミンスクールで有名なテックアカデミーの無料体験になります。
私はテックアカデミーで主にpythonコース、AIコース、データサイエンスコースを学びました。
テキストは期間が過ぎてもずっと閲覧できるのが良いと思います。
お金はかかるかもしれませんが
一人で悩むのは時間がもったないです。
時間はお金より大切だと思います。
こういうところで体系的に学ぶと早いですし、より理解が深まります。

テックアカデミー無料体験