Calling an XLA add-in method (function/sub) when t

2019-08-18 08:31发布

I need to call a method that is provided by a third-party XLA add-in via my VBA code.

There are already answers for doing this with a loaded XLL add-in, but the intention is to call the method directly.

1条回答
ら.Afraid
2楼-- · 2019-08-18 09:08

Based on e.James' answer for calling an XLL add-in, I figured out the right format to use if the Add-in isn't already loaded. You can use Application.Run for calling methods inside an .xla Add-in the following way:

If we assume that the path to our .xla file is C:\Program Files\example.xla and the method we want to call is ExampleMethod expecting one integer parameter, then the call would be as follows:

' Method call without return value
Private Sub XLAExample()
    Application.Run "'C:\Program Files\example.xla'!ExampleMethod", 10
End Sub

' Method call with return value (check if you can declare correct type for return value!)
Private Function XLAExample() As Variant
    XLAExample = Application.Run("'C:\Program Files\example.xla'!ExampleMethod", 10)
End Sub

So you will need to construct a string of the form

"'<ADDIN_PATH>'!<METHOD_NAME>"

for the call and then just append all needed parameters like

Application.Run <PATH_AND_METHOD>, <PARAMETER_1>, <PARAMETER_2>, ...


Unfortunately, I found that CuberChase's answer that declares the method directly like an API call doesn't work with my specific .xla file, maybe it would have needed to be loaded to work.

查看更多
登录 后发表回答