こんにちは。完全自動化研究所の小佐井です。

この記事では、UiPathでExcelを操作する本格的なワークフローを1本作成する方法を解説しています。

この記事でわかること
・フィルターをかけてExcelシートを分割する方法

※)Excelファイルはこの記事内でダウンロードできます。

※)Excelをパソコン内にインストール済みであることがワークフローを動かす前提です。

検証バージョン
OS:Windows11
UiPath Studio:バージョン2022.4.3 Community License
クラシック デザイン エクスペリエンス
私の信頼性

1) IT歴20年。開発から業務改善まで幅広く経験してきました
2) 複数の企業において2016年からRPA内製化をサポートしています
3) RPA関連の書籍を4冊出版しています

この記事はUiPath Studioを使用して自動化を始めている人を対象に書いています。超初心者には少し難しい内容となっていることをご了承ください。

本記事のワークフローで解決するのはこのような悩みです。

売上データの入ったExcelファイルを販売担当者毎に分割して保存する作業をしている。販売担当者が多いのでこの作業だけで何時間もかかってしまう。なんとか自動化できないものかなぁ。
小佐井
小佐井
こんな悩みがUiPathで解決できたら、素晴らしいですよね!

それでは、頑張ってワークフローを作成しましょう!

業務イメージ

[SalesDetailData.xlsx]は商品番号(ItemNo)ごとの売上明細表に担当者コード、担当者名、顧客名が付いています。この[SalesDetailData.xlsx]を担当者別に個別のファイルに分割するオートメーションが本記事のターゲットです(図1)。

図1:[SalesDetailData.xlsx]を分割する

作成準備

ワークフローを作成する前の準備を行ってください。

STEP1

UiPath Studioを起動し、新たにプロジェクトを作成する。

STEP2

作成したプロジェクトフォルダーの中に、サンプルファイル[SalesDetailData.xlsx]をコピーする。サンプルファイルは下のボタンをクリックするとダウンロードできます。

“SalesDetailData.xlsx” をダウンロード SalesDetailData.xlsx – 7 回のダウンロード – 45 KB

これで準備は完了です。

作成手順

それでは、ワークフローを作成してください。まずは全体の枠を作ってください。

全体の枠を作る

STEP1

Main.xamlを開く。

クラシック デザイン エクスペリエンスで解説しています

この記事はクラシック デザイン エクスペリエンスで解説しています。この記事を参考にしてワークフローを作成する場合は、以下の記事を読んでUiPath Studioをクラシック デザイン エクスペリエンスに変更してください。

STEP2

[フローチャート(Flowchart)]アクティビティを追加し、名前を「Main」に変更する。

STEP3

[Main]フローチャートをダブルクリックして展開し、[Main]フローチャート上に以下の3つのアクティビティを追加し、順番に流れ線で結ぶ(図2)。

[Excel アプリケーションスコープ]アクティビティを追加し、 表示名を「売上明細Excelを読み込む」にする。

[シーケンス]アクティビティを追加し、表示名を「データ加工」にする。

[シーケンス]アクティビティを追加し、表示名を「担当者別Excel書き出し」にする。

図2を参考に[Start]→[売上明細Excelを読み込む]→[データ加工]→[担当者別Excel書き出し]を流れ線で結ぶ。

図2:[Main]フローチャート

売上明細Excelを読み込む

[SalesDetailData.xlsx]を読み込み、データテーブル[SalesDetailData]に出力するワークフローを作成します。

STEP1

[売上明細Excelを読み込む]をダブルクリックし、アクティビティを展開する。[Browse for File](フォルダー型のアイコン)をクリックして、[SalesDetailData.xlsx]を選択する([ブック パス]プロパティに直接入力してもよい。この場合「“(ダブルクォーテーション)」でパスをくくるのを忘れずに)(図3❶)。

STEP2

[売上明細Excelを読み込む]のプロパティ[可視]のチェックを外す。

STEP3

[実行]の中に[範囲を読み込み]アクティビティを追加する(図3❷)。

図3:[売上明細Excelを読み込む]のワークフロー

STEP4

[範囲を読み込み]アクティビティの[データテーブル]プロパティの入力ボックスにカーソルをあてた状態でCtrl+Kキーを押し、[変数を設定]に「SalesDetailData」と入力し、Enterキーを押す。データテーブル[SalesDetailData]が作成される(図4)。

図4:[範囲を読み込み]アクティビティのプロパティ

STEP5

[変数]パネルを開き、[SalesDetailData]のスコープを[Main]に変更する。

データ加工

データテーブル[SalesDetailData]から担当者コードのユニーク(一意)なリストを作り出すワークフローを作成します。

STEP1

Mainのフローチャートに戻り、[データ加工]をダブルクリックし展開する。

STEP2

[データテーブルをフィルター]アクティビティを追加する(図5)。

STEP3

[フィルターを設定]をクリックする(図5)。

図5:[データテーブルをフィルター]アクティビティ

[フィルターウィザード]画面が表示されます。

STEP4

[入力データテーブル]にデータテーブル[SalesDetailData]を設定する(図6)。

STEP5

[出力データテーブル]の入力ボックスにカーソルをあてた状態でCtrl+Kキーを押し、[変数を設定]に「StaffCDData」と入力し、Enterキーを押す(図6)。

データテーブル[StaffCDData]が作成されます。

STEP6

[出力列]タブを選択し(図6❸)、入力ボックスに「”担当者コード”」と入力する(図6)。

これにより、データテーブル[StaffCDData]にはデータテーブル[SalesDetailData]の担当者コードのみが格納された状態となります。

STEP7

[OK]をクリックする(図6)。

図6:[フィルターウィザード]画面

[フィルターウィザード]画面が閉じられます。

STEP8

[変数]パネルを開き、[StaffCDData]のスコープを[Main]に変更する。

STEP9

[重複行を削除]アクティビティを[データテーブルをフィルター]アクティビティの後に追加する。

※)[重複行を削除]アクティビティは2つ存在します。[アクティビティ]パネルの[使用可能]→[プログラミング]→[データテーブル]の方を選択してください。

表示名を「担当者コード重複行を削除」に変更する。

プロパティ[入力/データテーブル]にデータテーブル[StaffCDData]を設定する。

プロパティ[出力/データテーブル]にもデータテーブル[StaffCDData]を設定する。

[データ加工]のワークフローが完成しました(図7)。

図7:完成した[データ加工]のワークフロー

担当者別Excel書き出し

担当者コードでデータテーブル[SalesDetailData]を絞り込み、絞り込んだデータをExcelファイルに書き込むワークフローを作成します。

STEP1

[Main]フローチャートに戻り、[担当者Excel書き出し]をダブルクリックし展開する。

STEP2

[繰り返し(データテーブルの各行)]アクティビティを追加する。

表示名を「StaffCDData繰り返し(データテーブルの各行)」に変更する(図8❶)。

プロパティ[データテーブル](アクティビティ上では[次のコレクション内の各要素])にデータテーブル[StaffCDData]を設定する(図8❷)。

[繰り返し]を[staffid]に変更する(図8❸)。

図8:[StaffCDData繰り返し(データテーブルの各行)]の設定

STEP3

[StaffCDData繰り返し(データテーブルの各行)]の[本文]に[データテーブルをフィルター]アクティビティを追加する。

[フィルターウィザード]をクリックし、[フィルターウィザード]画面を表示する。

[フィルターウィザード]画面の[入力データテーブル]にデータテーブル[SalesDetailData]を設定する(図9❶)。

[フィルター処理するデータテーブル]にカーソルをあてた状態で[Ctrl]+[K]キーを押し、[変数を設定]に「StaffSalesData」と入力し、[Enter]キーを押す。

データテーブル[StaffSalesData]が作成されます(図9❷)。

[行フィルターモード]に[保持]と[削除]を選択するラジオボタンがあるので[保持]を選択する(図9❸)。

[フィルターウィザード]画面の[フィルター行]タブを選択し、[列]に「”担当者コード”」と入力する(図9❹)。[操作]に「=」を選択し(図9❺)、[値]に「staffid.Item(“担当者コード”)」と入力する(図9❻)。

[OK]をクリックする(図9❼)。

図9:[フィルターウィザード]画面

[フィルターウィザード]画面が閉じます。

これにより、データテーブル[SalesDetailData]が1人の担当者に絞り込まれ、データテーブル[StaffSalesData]に格納されます。

STEP4

[データテーブルをフィルター]アクティビティの後に[Excel アプリケーションスコープ]アクティビティを追加し(図10❶)、プロパティ[ブックのパス]に「“StaffSales_”+ staffid.Item(“担当者コード”).ToString +”.xlsx”」と入力する(図10❷)。

STEP5

[Excel アプリケーションスコープ]アクティビティの[実行]の中に[範囲に書き込み]アクティビティを追加し、プロパティ[データテーブル]にデータテーブル[StaffSalesData]を設定する(図10❸)。

※)[範囲に書き込み]アクティビティは2つあります。[アクティビティ]パネルの[使用可能]→[アプリの連携]→[Excel]の方を選択してください。

図10:[Excelアプリケーションスコープ]アクティビティの設定

小佐井
小佐井
お疲れ様です!これで完成です。

使用する変数

ワークフロー内で使用する変数は表1の通りです。

表1:使用する変数

名前 変数の型 スコープ 既定値
SalesDetailData DataTable Main
StaffCDData DataTable Main
StaffSalesData DataTable 本文

実行してみよう

それでは、ワークフローを実行してください。数秒でワークフローは終了します。

実行すると図11のように、担当者コードが付いたファイルがプロジェクトフォルダーに作成されます。ファイルの中を見ると、担当者別に絞り込まれていることが確認できます。

図11:実行後のExcelファイル

めーたん
めーたん
ファイルを分割する事務作業が無くなるわ!
分割元のデータを取ってくるところや
分割したファイルをメール送信するところ等も
自動化すれば、さらに楽になるね!
小佐井
小佐井


さらにUiPathに詳しくなるには

この記事は『UiPath業務自動化最強レシピ RPAツールによる自動化&効率化ノウハウ』の中から抜粋して、Web向けに編集しています。

まとめてUiPathの知識を身に付けたい方は、ぜひ書籍をお読みください。

画像に alt 属性が指定されていません。ファイル名: 20220127130514-e1653461398943.png

この書籍を参考にしてワークフローを作成する場合は、以下の記事を読んでUiPath Studioをクラシック デザイン エクスペリエンスに変更してください。