Is it possible to call Excel Macro Functions from MATLAB?

90 views (last 30 days)
I would like to call Excel Macro Functions from MATLAB.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 27 Jun 2009
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
  1 Comment
Ben
Ben on 30 Dec 2020
at the end one should close the Excel instance in MATLAB and delete the Excel server object:
Quit(excelObject)
delete(excelObject)

Sign in to comment.

More Answers (1)

Harris Ahmad
Harris Ahmad on 10 Sep 2021
Hi,
I am new to MATLAB and am confused as to where the MATLAB is designated the name of the Excel and the name of the macro. Or does this create a new macro? I am trying to run a macro from MATLAB that already exists in my Excel file.
  7 Comments

Sign in to comment.

Products


Release

R2007b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!