【できるUiPath】は注目のRPAサービス「UiPath」を使って、RPAのワークフローを作るための基本操作から、実際に業務をRPA化する実践テクニックまでを解説する連載です。
過去の記事一覧【できるUiPathまとめ】
Webアプリのデータ入力
ExcelとWebアプリを自動処理するには 2
ワークフローの続きを作成していきましょう。ここからは、Excelから読み取ったデータをデモアプリに入力する繰り返し処理を中心に作成します。
カウンターの設定
入力する繰り返しの回数を決めるためのカウンターと呼ばれる変数を設定しましょう。この値を次の[繰り返し(各行)]アクティビティの中で1つずつ増やすことで、Excelの行を1つずつ進めながら処理を行うことができます。
1[代入]を追加する
2変数を指定する
HINT[代入]って何?
[代入]は、変数に値を代入するためのアクティビティです。[A←B]となっ ていることから分かるように、右辺の値を左辺に代入します。このため、左辺に変数を指定し、右辺に値や計算式を指定します。
HINT変数や数値は「" "」は不要
文字列を指定するときは「" "」で囲む必要がありましたが、変数や数値を指定するときは不要です。間違えて「" "」を含めると文字列として認識されてしまうので注意しましょう。
HINTExcelの見出しに注意しよう
HINTUI Explorerを活用しよう
テーブルの値の繰り返し処理
Excelの表には、通常、複数のデータが記録されています。こうしたデータを1行ずつ順番に処理したいとき(もしくは、繰り返し指示を出したいとき)は[繰り返し(各行)]を使います。
1[繰り返し(各行)]を追加する
2操作対象のデータテーブルを指定する
HINTアクティビティの階層に注目しよう
手順1で「各」で検索すると、「繰り返し(各行)」と「繰り返し(コレクションの各要素)」が見つかります。似た機能が表示されたときは、アクティビティの親階層に注目します。[繰り返し(各行)]の親階層は[データテーブル]なのでデータを処理するためのものと分かりますが、[繰り返し(コレクションの各要素)]は[コントロール]で汎用的な処理に使うものとなります。
HINT繰り返し処理はいろいろある
繰り返し処理には、[繰り返し(各行)]以外にも、上のHINTで紹介した[繰り返し(コレクションの各要素)]や[繰り返し(後判定)]などもあります。UiPath Activitiesガイドで、用途や使い方を確認しておくといいでしょう。
UiPath Activitiesガイド「繰り返し(各行)」の処理1:データ入力
「繰り返し(各行)」の中(Body)に処理を追加しましょう。最初の列のデータを「タイトル」、次の列のデータを「種別」、といったように順番にデモアプリに入力するといった処理を行数分繰り返します。
1[クリック]を追加する
2クリックする場所を指定する
3[文字を入力]を追加する
4入力先を指定する
5タイトルに入力する変数を指定する
HINT「繰り返し(各行)」の処理をイメージしてみよう
HINT画面上に入力するときは[文字を入力]を使う
アプリの入力欄などに、文字や数字を入力したいときは、[文字を入力]というアクティビティを使います。よく使うアクティビティなので、[お気に入り]に登録しておくといいでしょう。
HINTレコーディングで作成したいときは
HINT「!」が表示されたら
UiPath Studioでの作業中に、「!」のマークが表示されることがあります。これは、入力内容などに不備がある場合に表示されます。変数名や型が違っているなど、何か問題があるので、このマークが表示されたときは注意深く確認してみましょう。
HINT「row(0)」と、ゼロからスタートする
HINT「.ToString」って何?
手順5で指定している「row(0).ToString」は、「row(0)」に格納されているデータを「.ToString」で文字列に変換するという意味です。このように、UiPath Studioでは、格納先の変数の型に合わせて、適宜データを変換する必要があります。
HINTプルダウンメニューは[項目を選択]を使う
アプリの入力欄の中には、一覧から入力する値を選択するタイプのものもあります。こうした操作を自動化したいときは、[項目を選択]アクティビティを使って指定します。
6[項目を選択]を追加する
7選択先を指定する
8選択項目の変数を指定する
9残りの処理を追加する
HINTデモアプリの選択肢と同じ文字列を指定する
HINTアプリによっては[画像をクリック]でボタンを指定する
「繰り返し(各行)」の処理2:画面上のデータの取得
デモアプリでは、データを登録すると、その処理固有のコードが出力されます。画面上のコードを取得し、Excelの表に書き戻しましょう。
1[アンカーベース]を追加する
2[要素を探す]を追加する
3文字列を指定する
4[テキストを取得]を追加する
5取得したい文字列を指定する
6[テキストを取得]の値を変数に格納する
7[1行を書き込み]を追加する
HINT[アンカーベース]で目印を指定する
手順1で追加している[アンカーベース]は、画面上の要素を検索するアクティビティです。左側で合致する画面要素を見つけ、そこに右側の処理を適用します。
ここで利用するデモアプリでは、[コード:40]のように、「コード:」という文字列に続く数字を取得したいので、左に[要素を探す]のアクティビティを配置して「コード:」という目印を検出させ、右側に[テキストを取得]のアクティビティを配置してそれに続く文字列(実際のコード番号)を取得します。
HINTFINDとGETを入れ間違えないように注意
[アンカーベース]では、左側の[アンカー]部分に目印を検索する処理を、右側の[ここにアクションアクティビティをドロップ]部分に目印を見つけたときに実行する処理を配置します。左右を間違えると思い通りに動作しないので、間違えないようにしましょう。
HINT[テキストを取得]の値の格納先はプロパティで指定する
手順6の[テキストを取得]では、取得した値の格納先をプロパティパネルで指定する必要があります。[出力]の[値]が、取得した値を示すプロパティになるので、ここに格納先の変数(ここではtransactionId)を指定します。変数を新たに作成するときは、[Ctrl]+[K]キーを押して指定することを忘れないようにしましょう。
HINT変数を確認しておこう
手順6で作成するtransactionId変数は、[変数]パネルから確認できます。変数が正しく作成されているかを確認しましょう。なお、ここでは変数の設定を変更する必要はありませんが、処理内容によっては、変数の型やスコープ(有効範囲)を変更する必要があります。
HINT「1行を書き込み」って何?
HINT間違った場合は?
入力した文字列を削除した後、再度[Ctrl]+[K]キーを押してから入力し直します。
「繰り返し(各行)」の処理3:取得したコードのExcelへの出力
アンカーベースで取得したコードをExcelの表に書き戻します。書き込み先のセルは、列は「"E"」と固定で指定し、行はcounter変数で順次指定します。
1[セルに書き込む]を追加する
2変数の値をセルに書き込む
3[代入]を追加してカウンターを増やす
4[クリック]を追加する
5クリックする場所を指定する
HINT[counter]変数が現在処理している行を示す
HINT[セルに書き込む]って何?
[セルに書き込む]アクティビティは、Excelの特定のシートの特定のセルに対してデータを書き込むためのアクティビティです。手順2のように、ワークシート、セル、値を指定して利用します。なお、[セルに書き込む]を使うには、事前にExcelファイルを開いておく必要があるので注意しましょう。
HINT処理が繰り返されることを意識しよう
「繰り返し(各行)」を使った処理では、処理が繰り返されることを常に意識する必要があります。データの入力やコードの書き戻しといった一連の処理が終わったら、次のレコードで同じ処理をしなければならないため、手順5で忘れずに[戻る]をクリックする処理を追加して、アプリの画面も次の処理を開始できる状態に戻しておきます。
HINTカウンターを使わずに書き込み先セルを指定するには
ここではcounter変数を使って、画面上から取得したコードを書き込むセルを指定しましたが、counterではなく、transactions(Excelのワークシートを読み込んだDataTable)から、書き込み先のセルを特定することもできます。
具体的には、[セルに書き込む]で「"E"+(transactions.Rows.IndexOf(row)+2).ToString」と指定します。これは、transactions変数の現在処理している行の行番号を取得し、そこに2を追加(0からスタートしているため+1し、さらに見出し行があるため+1する)し、「.ToString」で文字列に変換するという意味です。この場合、ワークフローの冒頭でcounter変数を定義したり、「繰り返し(各行)」の最後でcounterを+1する処理は必要ありません。
HINTブラウザーは自動で閉じない
すべての処理が完了した後、[タブを閉じる]アクティビティを使って、デモアプリが表示されているブラウザーを自動的に閉じることもできます。ただし、RPAによる自動化では、人間の確認が非常に重要です。アプリやExcelを開いたままにしておくことで、入力された情報を人間が確認できるようにしておきましょう。
Point基本的なアクティビティの使い方を身に付けよう
ここでは、[代入]や[文字を入力]、[範囲を読み込む]、[ブラウザーを開く]、[繰り返し(各行)]、[アンカーベース]、[1行を書き込み]などの基本的なアクティビティを手動で組み合わせて経費精算処理を自動化しました。
最初は、アクティビティの役割などが分からないため、難しいと感じてしまうかもしれませんが、ここで紹介した例は、いろいろな自動化処理に応用できる汎用的なものです。1つずつ確実に身に付けていけば、多くの処理を自動化することができるでしょう。
提供:UiPath