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 側の追加順を一致させる。
いいなと思ったら応援しよう!
技術メモや学習の整理として書いています。
もし内容が役に立ったり、続きを読みたいと思っていただけたら、
応援として受け取らせてもらえたら嬉しいです。