レッスン10Webアプリのデータ入力

ExcelとWebアプリを自動処理するには 2

ワークフローの続きを作成していきましょう。ここからは、Excelから読み取ったデータをデモアプリに入力する繰り返し処理を中心に作成します。

カウンターの設定

入力する繰り返しの回数を決めるためのカウンターと呼ばれる変数を設定しましょう。この値を次の[繰り返し(各行)]アクティビティの中で1つずつ増やすことで、Excelの行を1つずつ進めながら処理を行うことができます。

1[代入]を追加する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

2変数を指定する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

HINT[代入]って何?

[代入]は、変数に値を代入するためのアクティビティです。[A←B]となっ ていることから分かるように、右辺の値を左辺に代入します。このため、左辺に変数を指定し、右辺に値や計算式を指定します。

HINT変数や数値は「" "」は不要

文字列を指定するときは「" "」で囲む必要がありましたが、変数や数値を指定するときは不要です。間違えて「" "」を含めると文字列として認識されてしまうので注意しましょう。

HINTExcelの見出しに注意しよう

ここでは、カウンターの値を処理対象のExcelの行に相当させる必要がありますが、Excelの表の1行目は見出しとなっています。このため、カウンターの初期値は見出しの1ではなく、実際に値がある2からスタートさせる必要があります。

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

HINTUI Explorerを活用しよう

ツールバーにある[UI Explorerを起動]ボタンをクリックすると、操作対象のアプリやボタンを識別するためのセレクターを確認したり、セレクターを編集したりできます。[ブラウザー内に要素を指定]や[画面上で指定]でうまく指定できないときは、UI Explorerでセレクターを確認し、必要に応じて編集しましょう。

例えば、カレンダーコントロールなどの特定の日付のセレクターを確認することで、日付指定の規則性を判断し、特定の日付を自動的に選択する仕組みを考えたりもできます。

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

テーブルの値の繰り返し処理

Excelの表には、通常、複数のデータが記録されています。こうしたデータを1行ずつ順番に処理したいとき(もしくは、繰り返し指示を出したいとき)は[繰り返し(各行)]を使います。

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

1[繰り返し(各行)]を追加する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

2操作対象のデータテーブルを指定する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

HINTアクティビティの階層に注目しよう

手順1で「各」で検索すると、「繰り返し(各行)」と「繰り返し(コレクションの各要素)」が見つかります。似た機能が表示されたときは、アクティビティの親階層に注目します。[繰り返し(各行)]の親階層は[データテーブル]なのでデータを処理するためのものと分かりますが、[繰り返し(コレクションの各要素)]は[コントロール]で汎用的な処理に使うものとなります。

HINT繰り返し処理はいろいろある

繰り返し処理には、[繰り返し(各行)]以外にも、上のHINTで紹介した[繰り返し(コレクションの各要素)]や[繰り返し(後判定)]などもあります。UiPath Activitiesガイドで、用途や使い方を確認しておくといいでしょう。

UiPath Activitiesガイド

「繰り返し(各行)」の処理1:データ入力

「繰り返し(各行)」の中(Body)に処理を追加しましょう。最初の列のデータを「タイトル」、次の列のデータを「種別」、といったように順番にデモアプリに入力するといった処理を行数分繰り返します。

1[クリック]を追加する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

2クリックする場所を指定する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

3[文字を入力]を追加する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

4入力先を指定する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

5タイトルに入力する変数を指定する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

HINT「繰り返し(各行)」の処理をイメージしてみよう

「繰り返し(各行)」では、Excelの表のデータを読み込んだDataTable型変数(ここではtransactions変数)の値を順番に処理します。DataTable型変数の値を処理するというと少し分かりづらいかもしれませんが、結果的には下の画面のようにExcelの表を1行ずつ繰り返し処理していると考えるとイメージしやすいでしょう。

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

HINT画面上に入力するときは[文字を入力]を使う

アプリの入力欄などに、文字や数字を入力したいときは、[文字を入力]というアクティビティを使います。よく使うアクティビティなので、[お気に入り]に登録しておくといいでしょう。

HINTレコーディングで作成したいときは

もしも、このレッスンと同じ処理をレコーディングで作成したいときは、レッスン5の手順7と同様にダミーの値を入力してアプリを操作し、レッスン7を参考にダミーの値を変数に置き換えます。

ただし、「繰り返し(各行)」などの処理はレコーディングでは作成できないので、「繰り返し(各行)」のBodyに登録する処理をレコーディングするという形態になります。

HINT「!」が表示されたら

UiPath Studioでの作業中に、「!」のマークが表示されることがあります。これは、入力内容などに不備がある場合に表示されます。変数名や型が違っているなど、何か問題があるので、このマークが表示されたときは注意深く確認してみましょう。

HINT「row(0)」と、ゼロからスタートする

DataTable型変数に格納されている値を指定するときは、変数の後に「row(0)の」ように()で値の番号を指定します。この値は0からスタートするので、最初の値を指定するときは、「row(0)」と指定します。

エクセルの表に見出し行があり、かつ「範囲を読み込む」で「ヘッダーの追加」がチェックされているときは(標準でオン)、「(row(0))」と列の番号で指定する代わりに、「(row("タイトル"))」のように見出しで値を指定することもできます。

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

HINT「.ToString」って何?

手順5で指定している「row(0).ToString」は、「row(0)」に格納されているデータを「.ToString」で文字列に変換するという意味です。このように、UiPath Studioでは、格納先の変数の型に合わせて、適宜データを変換する必要があります。

HINTプルダウンメニューは[項目を選択]を使う

アプリの入力欄の中には、一覧から入力する値を選択するタイプのものもあります。こうした操作を自動化したいときは、[項目を選択]アクティビティを使って指定します。

6[項目を選択]を追加する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

7選択先を指定する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

8選択項目の変数を指定する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

9残りの処理を追加する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

HINTデモアプリの選択肢と同じ文字列を指定する

リストボックスから候補を選択する操作を自動化するときは、入力先となるアプリの候補にある選択肢と同じ文字列を[項目を選択]に指定する必要があります。

手順8では、入力する値として[row(1).ToString]と、Excelから読み込んだ行データの2列目を指定していますので、その元となるExcelの表に文字列を入力するときに、必ずデモアプリの選択肢と同じ文字列を入力しておきましょう。

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

HINTアプリによっては[画像をクリック]でボタンを指定する

フラッシュで作成されたアプリなど、通常の[クリック]アクティビティでは指定できないボタンをクリックしたいときは、[画像をクリック]アクティビティを使って、ボタンをイメージとして認識させてみましょう。

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

「繰り返し(各行)」の処理2:画面上のデータの取得

デモアプリでは、データを登録すると、その処理固有のコードが出力されます。画面上のコードを取得し、Excelの表に書き戻しましょう。

1[アンカーベース]を追加する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

2[要素を探す]を追加する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

3文字列を指定する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

4[テキストを取得]を追加する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

5取得したい文字列を指定する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

6[テキストを取得]の値を変数に格納する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

7[1行を書き込み]を追加する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

HINT[アンカーベース]で目印を指定する

手順1で追加している[アンカーベース]は、画面上の要素を検索するアクティビティです。左側で合致する画面要素を見つけ、そこに右側の処理を適用します。

ここで利用するデモアプリでは、[コード:40]のように、「コード:」という文字列に続く数字を取得したいので、左に[要素を探す]のアクティビティを配置して「コード:」という目印を検出させ、右側に[テキストを取得]のアクティビティを配置してそれに続く文字列(実際のコード番号)を取得します。

HINTFINDとGETを入れ間違えないように注意

[アンカーベース]では、左側の[アンカー]部分に目印を検索する処理を、右側の[ここにアクションアクティビティをドロップ]部分に目印を見つけたときに実行する処理を配置します。左右を間違えると思い通りに動作しないので、間違えないようにしましょう。

HINT[テキストを取得]の値の格納先はプロパティで指定する

手順6の[テキストを取得]では、取得した値の格納先をプロパティパネルで指定する必要があります。[出力]の[値]が、取得した値を示すプロパティになるので、ここに格納先の変数(ここではtransactionId)を指定します。変数を新たに作成するときは、[Ctrl]+[K]キーを押して指定することを忘れないようにしましょう。

HINT変数を確認しておこう

手順6で作成するtransactionId変数は、[変数]パネルから確認できます。変数が正しく作成されているかを確認しましょう。なお、ここでは変数の設定を変更する必要はありませんが、処理内容によっては、変数の型やスコープ(有効範囲)を変更する必要があります。

HINT「1行を書き込み」って何?

[1行を書き込み]は、指定したデータを[出力]パネルに書き出すためのアクティビティです。処理を実行させた後に、UiPath Studioの[出力]パネルを開くと出力を確認できます。省略しても全体の処理に影響はありませんが、処理の途中結果をチェックすることなどができるので便利です。

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

HINT間違った場合は?

入力した文字列を削除した後、再度[Ctrl]+[K]キーを押してから入力し直します。

「繰り返し(各行)」の処理3:取得したコードのExcelへの出力

アンカーベースで取得したコードをExcelの表に書き戻します。書き込み先のセルは、列は「"E"」と固定で指定し、行はcounter変数で順次指定します。

1[セルに書き込む]を追加する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

2変数の値をセルに書き込む

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

3[代入]を追加してカウンターを増やす

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

4[クリック]を追加する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

5クリックする場所を指定する

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

HINT[counter]変数が現在処理している行を示す

[counter]は、ワークフローの最初の部分で初期化した変数です。counterの値がExcelの行番号に相当しています。初期化時に設定した値が「2」なので、「繰り返し(各行)」の最初の処理では、Excelの2行目が書き込み先として指定されます。「繰り返し(各行)」を繰り返す際に、値が1つずつプラスされていくため、処理対処の行も1つずつずれていくことになります。

ExcelとWebアプリを自動処理するには 2(Webアプリのデータ入力) - できるUiPath

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