次のようなExcel関数がある場合:
=my_function(A1:C4)
そして私はこれをVBAから次のように呼びたいです:
Dim t as variant
t = Application.Run("my_function",X)
XがA1:C4を表す最も簡単な方法は何ですか?
範囲はワークシートから取得する必要があるため、最初にその範囲を定義してから、他のワークブックの関数に渡す場合 (それ以外の場合は Application.Run を使用しないので、それがやりたいことだと思います)。したがって、次のコードでうまくいきます。
Sub RunFunctionInAnotherWorkbook()
Dim rThisRange as Range
Dim vResult as Variant
Set rThisRange = ActiveSheet.Range("A1:C4")
vResult = Application.Run("'MyOtherWorkbook.xls'!TheModuleName.TheSubName", rThisRange)
End Sub
ワークブック「MyOtherWorkbook.xls」の関数:
Function TheSubName(inputRange as Range) as Variant
'Work your magic here
End Function
最も単純な構文は次のとおりです。
Application.Run("my_function", [A1:c4])
私はそれを試していませんが、しません
t=myfunction(range)