エクセルのデータ編集

この章では、UiPathを使って簡単なエクセルファイルのデータを編集したいと思います。

UiPathにはエクセルの中のデータ編集が出来る様々なアクティビティが用意されています。エクセル内のデータを読んだり、書いたり、列、行の挿入、削除、またはマクロを実行したりなど…。

これらのアクティビティを使って、下記のエクセルの社員リストに新たなメンバーを追加しましょう。それでは、このリストのワークシートの名前をSheet1と記入します。

新たに追加する社員をエクセルの次のワークシートに記入します。ワークシート名はSheet2とし、今回はそれをSheet1の社員リストに追加しましょう。

まずはこのリストをエクセルのテーブルに変換します。これをすることで、追加された項目をコード順などに並び替えることが出来るようになります。

エクセルメニューのホームから、テーブルとしての書式設定を選びます。テーブルのデザイン、選択範囲を選択するとテーブルに変換されます。その後エクセルファイルを名前をつけて保存して閉じます。

ここで大事なのは、テーブル名を入力することです。このテーブル名を元にUiPathがリストの並べ替えを行います。ここではテーブル名をTable1と入力します。

Ui Pathの新しい空のプロセスを開きます。そしてフローチャートを追加します。

デザインパネルからexcelアプリケーションスコープのアクティビティを検索します。excelと打っていくとアクティビティが見つかるので、それをデザインパネルに追加します。

追加したら、StartNodeとして設定(A)を選び、Excelアプリケーションスコープをダブルクリックします。

赤枠の入力フィールドに保存場所までのパスとエクセルのファイル名を入力します。あるいはプロパティのワークブックのパスのフィールドに入力します。引用符で囲むのを忘れないように!

ここでエクセルのアクティビティから範囲を読み込むをドラッグアンドドロップで実行のワークフローの中に追加します。このアクティビティで追加する社員をUiPathに読み込みます。

次に、範囲を読み込むのプロパティのシート名に、追加する社員が記載されているワークシート名Sheet2を記入します。ここでワークシート名の記入がないと、UiPathがどこに情報を読みに行くべきかが分かりません。

ここで、Sheet2から読み込んだ情報をUiPathに保存しておくための変数を作成します。今回の場合、ひとつの値ではなく支社、電話番号など複数の社員の情報を保存するため、データテーブルという変数を使います。これで複数の値をひとつの変数に整然と並べて保存できます。これは例えでいうと、複数のビール瓶をビールケースに入れておくという感じでしょうか。

プロパティのデータテーブルの入力欄をマウスの右ボタンでクリックすると、メニューが出てくるので、そこで変数の作成を選び、変数の名前としてnewDTと入力します。

作成した変数を変数パネルで見ると、変数の型がDataTable(データテーブル)となっています。

ここで範囲を追加というアクティビティをドラッグアンドドロップして範囲を読み込むの下に追加します。これは変数の値を社員リストに追記する役割を果たします。

シート名のフィールドに引用符で囲んだ“Sheet1”と、データテーブルのフィールドに先ほど作成した変数のnewDT引用符なしで入れます。newと入力していくと変数が表示されます。

ここまでの工程で、Sheet1のリストに社員を追加できました。しかし、ただ一番最後の行に追加されただけなので、社員コード順に並べ替えをしましょう。

そのための最適なアクティビティがテーブルを並べ替えです。さっそく範囲を追加の下に追加していきます。

テーブル名を“Table1”と、列名を“社員コード”とそれぞれ引用符で囲んで入力します。テーブル名は、この章の最初でエクセルのテーブルを設定した時につけた名前です。また列名はどの列を基準に並べ替えを行うかで、この場合は社員コードの列が基準になります。順序にあるAscendingは数字が若い順から並べられます。

これですべての設定は完了です。もしエクセルファイルを開いている場合は閉じて、さっそくファイルをデバッグをクリックして実行してみましょう。

エクセルが一瞬開いてすぐに閉じました。UiPathで特にエラーが出ていなければ作業は完了です。エクセルを開いてみると、リストに以下のように社員が追加されて、社員コード順に並べ替えられているはずです。

今回の例は小規模なので、エクセルで直接コピーアンドペーストで作業を終わらせた方が早いと思う方もいらっしゃるでしょう。この章ではどうやってUiPathを使って、エクセルの表を操作するかという基本を例を使って解説をしましたので、この例を応用すれば、他のエクセルファイルからのデータを追加することも可能になります。



参考にしたサイトのリンク
https://www.uipath.com/developers/video-tutorials/excel-and-datatables-automation