UiPathの使い方⑤-2 Excelへ書き込みを繰り返す!

UiPathの使い方⑤-2 Excelへ書き込みを繰り返す!



前回はデータテーブルへExcelファイルを取り込んで
データ分システムへ入力、検索を繰り返す処理を解説しました。
今回はExcelファイルへデータの書き込みを繰り返す処理を解説します。

これまでの流れを復習します。
※書き込みの繰り返し処理だけ知りたい方は3.Excelへ書き込みを繰り返すに進んでください。

yahoo路線情報を用いて駅名を入力、検索して最安値をデータスクレイピングしました。そしてスクレイピングした最安値をExcelへ書き込むというものです。
入力、検索は繰り返し処理を解説しました。

1.データテーブルへExcelファイルを取り込んでデータ分システムへ入力、検索を繰り返す。下記にて解説しています。↓

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

2.検索結果から最安値をデータスクレイピングします。
最安値はセレクターが動的に変化するためアンカーを用いたスクレイピングを解説しました。下記にて解説しています。↓         

UiPathの使い方⑥webからのデータ取得(画面スクレイピング)



3.Excelへ書き込みを繰り返す

①読み込みファイル、書き込みファイルを準備する


書き込みファイルは以下のようなものをご準備ください。
※Book1とします。
A列は出発駅でB列は到着駅とします。
今回はC列に最安値を書き込んでいきましょう!
最安値は読み込みファイルを作ってそれに記述しておきます。



以下が最安値が記載された読み込み用ファイルです。
※Book2とします。


②それではワークフローを作っていきましょう!


繰り返し(前判定)アクティビティを用います。
条件とありますが、こちらは繰り返す条件を入力します。
ここでは0 = 0としています。
これの意味することは条件が0 = 0ならば・・・・ということで
不変的条件を設定することで無限ループにしています。
※後に判別式を追加し繰り返しが永遠に終わらない事を避けます。




書き込みファイルのA列のデータ(出発駅名)を
1行目、2行目と読み込みしたいですので”A1″のように特定のセルを指定するわけでないためカウントアップする行用の変数:rowをまずは宣言します。
変数宣言はスコープ指定する必要があります。
下図を参考に変数の適応範囲を決めます。





その後、左下の変数をクリックして

  • 変数 変数名です。row としました。

  • 変数の型 rowは1,2,3と数字が入力されます。文字列を意味するStringではなくint32を設定します。

  • 規定値 初期値を意味します。まずは1行目を取得したいので1と入力します。




書き込みファイルのフルパスを設定します。
書き込みファイルのA列を読み込みます。
※書き込みファイルのA列を読み込むのはデータが存在するのかをチェックするためです。
1行目、2行目と読み込みしたいですので”A1″のように特定のセルを指定するわけでなく以下のようにします。




セルは下記のように設定します。
“A”はA列を意味します。文字列ですので””でくくります。
1回目の繰り返しではrowは1ですから”A”+1でA1の値を読み込む事になります。
※今回はA1は東京ですね。
2回目の繰り返しではrowは2ですから”A”+2でA2の値を読み込みます。
.ToString()は文字列へ変更を意味します。




読み込んだデータの格納先変数を設定します。
セルを読み込みプロパティから変数:stationを設定します。
※今回の例だと”東京”がまず格納されることになります。




次に条件分岐アクティビティを用います。
条件をstation = “”とします。
意味するのは読み込んだデータの格納先である変数:station が “”
つまりデータがなければ繰り返しをブレーク
繰り返し終了という意味です。
※データが存在する行に対して処理をおこないため書き込みファイルのA列を読み込みしたのです。




RPAの強みは繰り返し処理ですから
ExcelファイルやCSVファイルのデータ分処理を繰り返す等の処理は効果を発揮できます。
そのデータ数は毎回変化する事が多いでしょうからこのような条件式を用います。
但し、下記のようなデータの場合は注意が必要です。
単純に条件を読み込みデータの格納変数名 = “”で繰り返しブレーク設定をすると意図しない箇所で止まってしまいます。
※下記の表だと5行目までしか繰り返されません。



Excelアプリケーションスコープアクティビティを追加します。
最安値を記載したExcelファイルを指定します。
このファイルのデータを1行目から読み込んで書き込みファイルのC列に転記する事になります。




読み込みセルの設定は先ほど同様です。
変数は同じくrowを用います。
※本来ブックが異なりますので別変数を宣言すべきですが
今回は読み込みファイル、書き込みファイルの行は一致しますので
簡略化のため同じ変数を用います。




読み込んだデータの格納先である変数:最安値を宣言します。




セルに書き込みアクティビティを追加します。
セルの設定はこれまでと同じですが、書き込み先はC列ですので“C”を記載します。
書き込みする値は変数:最安値になります。




セルに書き込みアクティビティはBook1(書き込み用ファイル)の範囲内になります。
ですのでここであえてスコープを指定する必要はありません。




最後に変数:rowをカウントアップします。
アクティビティは複数代入を用います。
rowの初期値は1です。
つまり1行目になります。
2回目の繰り返しでは2行目になる必要があります。
ですのでrow + 1になります。




以上で完了です。
お疲れ様でした。
実行してみましょう!
下記のように最安値がC列に記載されていればOKです。



下記参考書籍となります。
uipath書籍の中ではかなり良いかと思います。