マクロに渡す引数をExcelの引数リストから渡す
■引数リスト
■実行するマクロのコード
Function fncTest(strArg1 As String, intArg2 As Integer, dobArg3 As Double, dateArg4 As Date) As String Dim intResult As Integer Dim doubleResult As Double Dim dateTargetDay As Date On Error GoTo ErrorHandler: MsgBox strArg1 intResult = intArg2 + 1 MsgBox "足し算結果:" & intResult doubleResult = 100 * dobArg3 MsgBox "消費税計算結果:" & doubleResult dateTargetDay = #9/1/2021# intResult = DateDiff("d", dateTargetDay, dateArg4) MsgBox "日数差計算結果:" & intResult fncTest = "OK" Exit Function ErrorHandler: fncTest = "NG" End Function
■UiPathフロー
【ポイント】
引数の型について:「マクロの実行」アクティビティの引数の設定値の変数は30個であり、その属性はObject型
※Object型について(参考URL:「VBA を呼び出し」アクティビティの<<Object型>> - Qiita)
ロボ側でObject型で定義した変数は、「エントリメソッドのパラメーター」に指定するとそれはそのままObject型として扱われるようです。
Int32型で定義した変数では、それはInt32型の属性を持ってます!とObject型に教えてあげつつ、扱われるようです。
【サンプルフロー】
※実行結果