2020.03.17
普段の業務でよく使用するエクセルでの単純作業やルーティーン作業は、もしかすると自動化できるかもしれません。
そんなときにどんなことが自動化に向いているか、あるいはどういった方法で自動化が実現できるかご紹介させていただきます。
ここでは前提条件として、端末にMicrosoft Excel アプリケーションがインストールされていることとします。
まずはUiPathで出来るExcel操作の一部を簡単にご紹介いたします。
・シートの読み込み/出力
・列の読み込み
・行の読み込み
・セルの読み込み/出力
・セルの色を取得
・テーブルを作成
・ピポットテーブルを作成/更新
・テーブルを並び替え
・テーブルをフィルター
・マクロを実行
・範囲をコピーしシートに貼り付け
・シートのコピー
今回はよくつかわれるデータの読み込みや書き込みの自動化についてご紹介させていただきます。
UiPathでExcelの自動化を行う方法は2通りありますが、ここでは「UiPath.Excel.Acrivities」を使用した方法をご紹介いたします。
Excelワークブックを開きエクセルへの処理が終了したら対象のワークブックを終了します。Excelの自動化アクティビティはすべてこのアクティビティ内に配置するようにします。
Excelアプリケーションスコープを配置
1.アクティビティタブを開き、検索ウィンドウに「Excel」と入力し検索し、「Excelアプリケーションスコープ」をダブルクリックし配置します。
2.処理対象のエクセルファイルのファイルパスを入力ウィンドウ内に記載します。
この時、ファイルパスは半角の“”(ダブルクォーテーション)で囲ってください。
Dドライブ直下にある「TEST.xlsx」ファイルを処理対象のエクセルファイルとします。
処理対象のエクセルファイル:シート名「処理データ」
まずはセルのデータを取得してみましょう。
1.「セルを読み込み」アクティビティを実行シーケンス内に配置します。
2.データを取得したいセルが存在する「シート名」と「セル」を指定します。
3.取得したデータを格納する変数を作成し指定します。
プロパティの「結果」入力ボックス内で「Ctrl」+「K」を押下し変数名を入力すると作成できます。
「TEST.xlsx」のA1にはIDが入力されていますので、取得結果は「ID」となります。
例で使用している「TEST.xlsx」のような各列に同一のデータが記入されているシート情報を取得する際に便利です。取得したデータは「DataTable型」となり、各行のデータを基準とした処理によく使用されます。
1.「範囲を読み込み」アクティビティを実行シーケンス内に配置します。
2.データを取得したいシート名を指定します。
3.データを取得する範囲を指定します。指定しなければシート内全てとなります。
4.プロパティを開き「ヘッダーの追加」にチェックを入れると先頭行がヘッダーとして読み込まれます。チェックを外すと先頭行もデータとして読み込みます。
5.取得結果を格納する変数を指定します。(作成方法は先ほどと同様)
同一ブック内のシートより取得したデータを別シートに出力してみます。
1.「範囲に書き込み」を実行シーケンス内に配置します。
2.出力先のシート名を指定します。
3.出力開始セルを指定します。
4.先ほど取得した「GetDataTable」をデータテーブルに指定します。
5.プロパティを開き「ヘッダーの追加」にチェックを入れるとヘッダーとデータ行が出力され、チェックを外すとデータ行のみ出力されます
データ取得元のエクセルファイルとは別のエクエルファイルに出力したい場合の処理についてご紹介させていただきます。
ここで使用する「範囲に書き込み」アクティビティはバックグラウンドで実行されるアクティビティで、実際にExcelワークブックを起動することはありません。違いについては後ろの方に記載していますので興味があればご確認ください。
1.検索ウィンドウで「write」と入力し、ワークブック配下の「範囲に書き込み」を配置します。
2.出力するエクセルファイルのパスを指定します。
※指定したファイルが存在しない場合は指定したパスで新しく作成されます。
3.出力するシート名を指定します。
4.出力開始するセルを指定します。
6.プロパティを開き「ヘッダーの追加」にチェックを入れるとヘッダーとデータ行が出力され、チェックを外すとデータ行のみ出力されます
処理結果は下記になります。
別のエクセルファイルへ出力で使用した「範囲に書き込み」アクティビティはOffice Excelアプリケーションがインストールされていない場合にも使用可能なアクティビティで、Excel配下にある「範囲に書き込み」アクティビティとは少し異なります。ただ、アクティビティの処理結果は同じで、データテーブルをシートに出力ですのでOffice Excelアプリケーションがインストールされている環境でしたらどちらのアクティビティを使っても問題はありません。
指定されたシートの末尾にデータテーブルを追記する方法です。
ここでは「TEST.xlsx」の取得結果シートの末尾に処理データシートの内容を追記します。
1.「範囲を追加」アクティビティを実行シーケンス内に配置します。
2.追記するシート名を指定します。
3.追記対象のデータテーブルを指定します。
色のついたセル範囲は追記したデータとなります。
これらのExcelデータの入出力アクティビティを使用し、業務システムへのデータ入力や検索結果のデータを
エクセルファイルに貼り付ける等の作業を自動化することが可能です。
また、エクセルファイルから業務システムだけではなく、エクセルファイルからエクセルへの処理も単純なものでしたら
マクロを一から作成するよりも簡単に自動化を実現することが出来るかと思います。
以上、UiPathでExcel操作を行う際の説明をしました。
Uipathの導入、運用についてお困りの際は
是非、弊社に問い合わせをしていただけたらと思います。