ChatGPT活用術 Excel・ファイル操作 UiPath

【UiPath】Excelマクロを実行する方法|VBAとの組み合わせ活用術

Excel業務の効率化を進める上で欠かせないのが「マクロ(VBA)」の活用です。複雑な計算やデータ加工を一瞬で行えるため、多くの現場で利用されています。しかし、マクロだけでは「複数ファイルの連続処理」や「他システムとの連携」といった業務全体の自動化には限界があります。

そこで力を発揮するのがRPAツール「UiPath」です。UiPathはExcelアクティビティを使ってExcel操作を自動化できるだけでなく、既存のVBAマクロを直接呼び出して実行することも可能です。これにより「マクロの強み」と「UiPathの自動化力」を組み合わせたハイブリッドな業務効率化が実現できます。

この記事では、UiPathでExcelマクロを実行する具体的な方法から、実務での活用事例、注意点、さらに応用アイデアまで徹底解説していきます。

✅ UiPathでExcelマクロを実行するメリット

・既存のマクロ資産を活用できる

これまで作り込んできたExcelマクロをゼロから作り直す必要がありません。UiPathから呼び出すだけで既存のVBAをそのまま利用できます。

・マクロとRPAの役割分担

Excel内部の処理はマクロに任せ、ファイル操作やメール送信、Web連携など外部処理はUiPathに担当させることで、それぞれの強みを最大限に活かせます。

・業務全体の自動化が可能に

「マクロを実行 → 結果を別フォルダに保存 → Outlookで自動送信」という一連の流れをUiPathが統括し、完全無人化を実現できます。

参考:【UiPath】Excel業務を完全自動化する方法|初心者から実務活用まで解説


✅ UiPathでExcelマクロを実行する方法

・方法1:Excelアプリケーションスコープ+マクロ実行アクティビティ

UiPathには「Execute Macro(マクロを実行)」アクティビティが用意されています。これを使うのが最もシンプルな方法です。

  1. 「Excelアプリケーションスコープ」を配置
  2. 対象のExcelファイルを指定
  3. 「マクロを実行(Execute Macro)」を配置
  4. プロパティにマクロ名を入力(例:「Module1.TestMacro」)
  5. 実行すれば、指定マクロが呼び出される

・方法2:Invoke VBAアクティビティ

既存のVBAコードを直接呼び出す方法です。

  1. 「Invoke VBA」を配置
  2. VBAコードが書かれた .vbs または .txt ファイルを指定
  3. 引数を渡して処理を実行可能

こちらはExcelファイルに保存されたマクロではなく、外部ファイル化されたVBAコードを呼び出す場合に有効です。

・方法3:ショートカットキーによるマクロ起動

どうしても「マクロ実行ボタン」やショートカット操作でしか動かない場合、UiPathの「Send Hotkey」アクティビティを使ってAlt+F8や設定済みのショートカットを送信する方法もあります。ただし堅牢性に欠けるため推奨度は低めです。


✅ UiPathからマクロを実行する具体的手順(サンプル)

・準備:Excelファイルにマクロを用意

例として、シート内の売上データを集計して別シートに出力する「集計マクロ」を用意します。

Sub 集計マクロ()
    Sheets("売上データ").Range("A1").CurrentRegion.Copy
    Sheets("集計結果").Range("A1").PasteSpecial xlPasteValues
    MsgBox "集計完了"
End Sub

・UiPath側の設定

  1. Excelアプリケーションスコープを配置し、対象のExcelを指定
  2. 「Execute Macro」アクティビティを追加
  3. プロパティに 集計マクロ と入力
  4. 実行するとマクロが動作し、結果が出力される

このように数ステップでUiPathとExcelマクロを連携させられます。

参考:【Excel】【成績処理】複数教科の合否判定をIF関数で自動化する方法(合格/再試験/不合格)




✅ 実務での活用例

・売上レポートの自動化

マクロで複雑な計算や書式設定を実施 → UiPathでレポートを保存 → Outlookで関係者に自動配信。

参考:【ChatGPT】Outlookメールを解析させるPower Automateフロー

・請求書の一括生成

マクロで請求書を生成 → UiPathでPDFに変換 → 各顧客ごとにメール送信。

・データクレンジング

マクロでExcelデータの重複削除やフォーマット統一 → UiPathで統合ファイルにまとめ、データベースへ自動登録。


✅ UiPath×VBAを組み合わせる際の注意点

・マクロのセキュリティ設定

Excelのマクロ実行には「マクロ有効化」の設定が必要です。組織ポリシーで制御されている場合は事前確認が必要です。

・マクロ名の指定ミスに注意

「Execute Macro」で指定するマクロ名は正確でなければ動作しません。モジュール名+マクロ名の形式を意識しましょう。

・エラーハンドリングの実装

マクロ実行中にエラーが出てもUiPathは待機し続ける場合があります。例外処理やタイムアウトを設けることで安定性を高められます。

参考:【VBA】エラーを無視して終了する方法:エラーハンドリング


✅ 応用編:UiPath×VBAの高度な活用術

・引数を渡して動的に処理

「Invoke VBA」を使えば、マクロに変数を渡すことが可能です。たとえば「指定した年月の売上データだけ集計する」といった処理をUiPathからコントロールできます。

参考:【VBA】ByVal と ByRef の違いと使い方

・複数マクロの連続実行

一つのExcelに複数のマクロがある場合、UiPathで順番に呼び出すこともできます。処理の流れをUiPathが統括することで、複雑な業務も自動化可能です。

・他システムとの連携

マクロで整形したExcelデータをUiPathで基幹システムに入力したり、Webシステムに転記することで、業務フロー全体を自動化できます。


■ まとめ:UiPathとVBAを組み合わせて最強のExcel自動化を実現しよう

  • UiPathは「Execute Macro」「Invoke VBA」でExcelマクロを直接実行可能
  • 既存のVBA資産を活かせるため、ゼロから作り直す必要がない
  • 実務ではレポート作成、請求書生成、データクレンジングに効果的
  • 注意点はマクロのセキュリティ設定、マクロ名の指定、エラーハンドリング
  • 応用編では引数付きマクロや複数マクロ連続処理も実現可能

UiPathとVBAを組み合わせれば、Excel業務の自動化は飛躍的に進化します。マクロで培った処理ロジックをそのまま活用しつつ、UiPathで全体フローを統括すれば、業務効率は数倍にも高まるでしょう。まずは小さなマクロ実行から始め、徐々に応用シナリオへと展開してみてください。

-ChatGPT活用術, Excel・ファイル操作, UiPath