【初心者向け】UiPathによるRPA実装22 Excelからのデータコピー自動化

前回の記事では、経費申請アプリケーションへのログイン処理自動化方法について説明しました。

今回の記事では、アプリケーションへの入力元となる申請用Excelファイルから必要な情報をコピーする処理の自動化を進めて行きたいと思います。

<スポンサーリンク>

Excelからのデータコピー

申請用Excelファイルのダウンロードと確認

さて、申請用Excelファイルですが、zipで圧縮してGitHubにアップしています。まずは以下のリンクより、ファイルをダウンロードして下さい。リンク先の”UiPath第22回用.zip”をクリックし、「Download」ボタンを押すとファイルがダウンロードできます。

GitHub ( 第22回用Excelファイルダウンロードリンク )

ダウンロードできましたら、アプリケーションを置いたフォルダ直下に「申請書」というフォルダを作成し、そのさらに直下にExcelファイルを置いて下さい。

では、ファイルを開いて、構造を見てみましょう。

中身を見てみると、申請フォームは”経費申請フォーム”というシートに含まれており、さらにアプリケーションに貼り付けるべきデータは、”D4″, “D6”, “D8”, “D10″の4つのセルに入っていることが分かります。この情報をもとに、自動化を進めて行きます。

Excelからのデータコピー

さて、まずはExcelからデータをコピーする一連の操作を自動化します。自動化のやり方には色々ありますが、今回はActivityを手作業で組み立てる方法を使ってみます。

まずはデータコピーの一連のActivityを入れるためのSequenceを準備しておきましょう。

ActivitiesペインからFlowchart上へSequenceをドラッグ&ドロップします。後ほどFlowchartを見て、操作内容が大まかに把握できるよう、Sequenceには”Excelデータのコピー”等の名前を付けておきましょう。

続いて、このSequenceの中を埋めていく必要がありますが、まず最初にすべきなのはExcelファイルを開くという操作ですね。これには、「Excel Application Scope」というActivityを使う必要があります

ActivitiesペインでこのActivityを検索して下さい。もしも見つからない場合は、Excel操作用のパッケージがUiPathに導入されていません。以下の記事を参照頂き、パッケージをまずは導入して下さい。

前回は取得したGoogle検索結果の一部を、UiPathのウインドウに表示するという処理を自動化してみました。 ここで、当初設定したテ...

「Excel Application Scope」Activityが見つかりましたら、”Excelデータのコピー”ボックスをダブルクリックで開いておいた上で、その中にドラッグ&ドロップします。

続いて、開くExcelファイルを指定するために、追加したボックスの右上のボタンをクリックします。

すると、ファイルを選択するためのウインドウが表示されますので、先ほどダウンロードしたExcelファイルを指定します。あとはDoボックスの中にExcelファイルからのデータコピーに関するActivityを並べていくことで、自動化を行うことができます。

データコピーですが、すでにコピーすべきExcel上のセルは特定できていましたね。特定のセルのデータをコピーするためには、「Read Cell」というActivityを使います

ちなみに、「Read Cell」には機能が微妙に異なる2種類がありますが、今回は「Excel」のすぐ下にある方を使います。

続いて、Read Cell内の設定をしていきます。

まずはボックス内にコピー対象とするシートとセルを入力する欄がありますので、シート名には”経費申請フォーム”と、セルには”D4″と入力します。

なお、D6, D8, D10についてもこの後設定しますが、まずはD4について一通り設定したいと思います。

次に、コピーしたD4セルの内容を入れるVariableを、Propertyに設定する必要があります。ボックスを選択した状態で、Propertiesペイン上のResult行の空欄を選択し、「Ctrlキー + k」でVariable名を設定して下さい。ここでは、D4に社員番号が入っていることから、”empNo”とVariable名を付けることにします。

ここまでの作業を行うと、ボックスとPropertyの内容は以下のようになっているはずです。これで、Excel D4セルのデータを”empNo”というVariableに保存することができるようになりました。

残りのD6, D8, D10についても、先ほど追加したRead Cellボックスの下に新たにRead Cellを追加して、全く同様の作業を行います。なおVariable名について、本記事では、D6は”expDate”、D8は”expItem”、そしてD10では”expAmount”という名称にしています。

実際にVariableが登録されたか、Variablesペインで確認してみましょう。もしもペイン内にVariableが表示されていない場合は、Doボックス内のどこでも構わないのでクリックし、Doボックスを選択してみて下さい。

empNo等のVariableが登録されていますね。

なお、Variable typeには「GenericValue」という型が登録されています。これは、数字や文字列など様々な値を格納できる、汎用的なVariableです。GenericValueの代わりにInt32型やString型などを使った方が、専用の関数を使えたりと便利な面はあるものの、とりあえず値をUiPathに格納したいときにはGenericValueを使って簡易的に実装するのも一つの手段です。

取得データの確認処理

さて、経費申請アプリにこれらデータを入力する処理を追加する前に、Write Lineを使って正しくExcelからデータが取得できているか確認するための処理を追加しましょう。

Write line ActivityをDoボックスの一番下に設置します。Write lineのText欄には、「empNo + “, ” + expDate + “, ” + expItem + “, ” + expAmount」と入力して下さい。これは、各Variableの内容をカンマでつなげた一つの文字列を意味しています。このように、文字列は「+」を使うことで連結することができます。なお、Variable名は「 ” 」なしで、それ以外の直接的な文字列は「 ” 」で括る必要があることに注意して下さい。

ここまでの作業が終わったら、Mainワークフローに戻り、すべてのボックスを→でつなげましょう。

テスト実行

それでは、ここまでの処理が正しく組まれているか確認するために、「Run」ボタンを押してみましょう。なお、今更ですが、プログラムを動かすためには、「Run」ボタンを押す代わりに「F5キー」を押すことでも代替できます。

プログラムがエラー無く動いたら、OutputペインでWrite lineにより出力された文字列を見てみましょう。

データはしっかりExcelから取得できているようですが、日付に”00:00:00″という無駄な情報がついているのが気になりますね。これは日付データに関して、Excelの見た目上は「年月日」までしか表示されていないものの、内部的には「時/分/秒」まで保存しているのが原因です。Excelファイルの内容をアプリケーションに入力する上で、この情報は省いておきたいですね。

終わりに

今回はExcelファイルのオープン方法と特定のセルからの情報取得について説明しました。

次回の記事では、アプリケーションに入力する日付データの適正化について紹介させて頂くとともに、アプリケーションへのデータ入力と登録処理の自動化まで紹介したいと思います。