見出し画像

UiPath|アクティビティ|Excel|Run Spreadsheet Macro|Excelマクロ実行と戻り値の扱い


基本構文

Run Spreadsheet Macro は、マクロ有効ブック内にある指定マクロを実行し、必要に応じて引数と戻り値を扱うアクティビティである。

対象は、Use Excel File で選択した Excel ファイルまたは Project Notebook であり、マクロ引数の追加とマクロ実行結果の保存ができる。

Use Excel File
Run Spreadsheet Macro
Source workbook = マクロ有効ブック
Macro name = 実行するマクロ名
Macro arguments = マクロへ渡す値
Output to / Macro result = 戻り値の保存先

項目 意味 実務での指定

・Source workbook マクロを実行するブック .xlsm 形式のブック
・Macro name 実行するマクロ名 "Main"、"CreateReport" など
・Add Macro Argument マクロへ渡す引数 文字列、数値、セル値、保存済み値
・Output to / Macro result マクロの戻り値 後続処理用の変数またはセル
・Private Verbose ログへの値出力抑制 機密値を扱う場合はオン

戻り値の型・性質:

・マクロが値を返す場合、Macro result / Output to に保存できる。
・戻り値を後続アクティビティで使う場合は、変数へ保存する。
・戻り値が不要な Sub 実行では、Output は未設定でもよい。


サンプルコード

サンプル①:最短実行例

役割:マクロ有効ブック内の Main マクロを実行する。
理由:既存 .xlsm の処理を UiPath からそのまま動かすため。
注意:対象ブックはマクロ有効ブックである必要がある。

Use Excel File
Excel file = "C:\Work\report.xlsm"
Reference as = wbReport

Run Spreadsheet Macro
Source workbook = wbReport
Macro name = "Main"

サンプル②:実務での定番例

役割:処理対象月を引数で渡し、マクロの戻り値を UiPath 側で受け取る。
理由:VBA 側で処理結果を返し、UiPath 側で後続分岐やログ出力に使えるため。
注意:戻り値の型は UiPath 側で文字列化して扱うとログ・判定が安定する。

Use Excel File
Excel file = in_ReportMacroBook
Reference as = wbReport

Run Spreadsheet Macro
Source workbook = wbReport
Macro name = "CreateMonthlyReport"
Macro Argument 1 = "2026-05"
Macro result = out_MacroResult

If Condition = out_MacroResult.ToString = "OK"

備考

・ブック内に既にマクロが存在する場合は Run Spreadsheet Macro を使う。

・外部 VBA ファイルを読み込んで実行したい場合は Invoke VBA を使う。

・マクロ名は文字列で指定するため、名称変更に弱い。マクロ名は定数化しておく。

・マクロ側で処理結果を "OK" / "NG" / エラー内容 のように返すと、UiPath 側の分岐が作りやすい。

・引数を複数渡す場合は、VBA 側の引数順と UiPath 側の追加順を一致させる。

いいなと思ったら応援しよう!

Parusの寺小屋 技術メモや学習の整理として書いています。 もし内容が役に立ったり、続きを読みたいと思っていただけたら、 応援として受け取らせてもらえたら嬉しいです。