MATLAB: Is it possible to call Excel Macro Functions from MATLAB

callingexcelfunctionmacrosMATLABsub

I would like to call Excel Macro Functions from MATLAB.

Best Answer

You can execute Excel Macro functions from the MATLAB environment by using the ActiveX interface.
Here are two simple examples on how to call a Sub (in VB/VBA: a procedure without any returned values) and a Function (returns a value):
excelObject = actxserver('Excel.Application');
excelObject.Workbooks.Open('C:\Test.xls');
excelObject.Run('TestSub', 'Hello world');
retValue = excelObject.Run('TestFnc', 'Hello world from a function');
The Excel Macro routines that belong to this example (Test.xls) should be in a module and look as follows:
Public Sub TestSub(arg1 As String)
MsgBox arg1
End Sub
Public Function TestFnc(arg1 As String)
TestFnc = "Passed: " & arg1
End Function