0
コンテキスト: Microsoft Accessでは、Application.Run
を使用して、関数を呼び出してパラメータを動的に渡そうとしています。私のコードは、以下のエクセル2013で動作しますが、Accessでは動作しません。2013年Access VBAコンパイルエラー無効なParamArray使用
コード:
Public Sub Test()
Call MethodDynamically("MethodToBeCalled1", "This", "works")
Call MethodDynamically("MethodToBeCalled2", "This", "works", "too")
Call MethodDynamically("MethodToBeCalled3", "This", "works", "too", "as well")
End Sub
Public Sub MethodDynamically(MethodName As String, ParamArray Params() as Variant)
Application.Run MethodName, Params
End Sub
Public Sub MethodToBeCalled1(Params As Variant)
Debug.Print Params(0) & " " & Params(1)
End Sub
Public Sub MethodToBeCalled2(Params As Variant)
Debug.Print Params(0) & " " & Params(1) & " " & Params(2)
End Sub
Public Sub MethodToBeCalled3(Params As Variant)
Debug.Print Params(0) & " " & Params(1) & " " & Params(2) & " " & Params(3)
End Sub
戻り値出力:
This works
This works too
This works too as well
エラー:のMicrosoft Accessでただし、同じコードはエラーを返します:Compile error: Invalid ParamArray use
。
このコードをAccess VBA用に調整する方法はありますか?
大感謝エリック。好奇心から、なぜこれはExcelではなくAccessで動作するのですか? –
私は 'Application.Run" MyFunction() "' MyFunction'を2回実行する(Accessでランタイムエラーを起こす)など、Excelの 'Application.Run'について複数の奇妙な/バグのあるものに気付きました。私が言うことができるのは、それがアフリカでは働きません。 –