I have a 3rd party XLL addin I'd like to wrap in my own custom vba function. How would I call the 3rd party function from my code?
See Question&Answers more detail:osI have a 3rd party XLL addin I'd like to wrap in my own custom vba function. How would I call the 3rd party function from my code?
See Question&Answers more detail:osEdit: There are at least two ways to do this:
Option 1: Application.Run(...)
This looks like the best way to go about it, since your arguments are automatically converted to an appropriate type before being sent to the XLL function.
Public Function myVBAFunction(A as Integer, B as String, C as Double)
myVBAFunction = Application.Run("XLLFunction", A, B, C)
End Sub
See this page for more details.
Option 2: Application.ExecuteExcel4Macro(...)
With this method, you will have to convert any arguments into string format before passing them to the XLL function.
Public Function myVBAFunction(A as Integer, B as String, C as Double)
dim macroCall as String
macroCall = "XLLFunction(" & A
macroCall = macroCall & "," & Chr(34) & B & Chr(34)
macroCall = macroCall & "," & C
macroCall = macroCall & ")"
myVBAFunction = Application.ExecuteExcel4Macro(macroCall)
End Sub
See this page for more details.