Main Content

Create Excel Add-In from MATLAB

Supported Platform: Microsoft® Windows® only.

This example shows how to use MATLAB® Compiler™ to generate a Microsoft Excel® add-in containing a custom function for use within Excel. The function mymagic returns an n-by-n magic square matrix that has equal row and column sums. The target system does not require a licensed copy of MATLAB to run the add-in.

Before you begin, verify that you have met all of the Excel target requirements for MATLAB Compiler. For details, see Excel Target Requirements and Limitations for MATLAB Compiler.

Note

To generate the Visual Basic® files, enable Trust access to the VBA project object model in Excel. If you do not do this, you can manually create the add-in by importing the .bas file into Excel.

Create Function in MATLAB

In MATLAB, locate the MATLAB code that you want to deploy as an Excel add-in.

For this example, compile the function mymagic.m located in matlabroot\toolbox\matlabxl\examples\xlmagic.

function y = mymagic(x)
y = magic(x)

At the MATLAB command prompt, enter mymagic(5).

The output is a 5-by-5 square.

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

Create Excel Add-In Using compiler.build.excelAddIn

Build an Excel add-in using a programmatic approach. Alternatively, if you want to create an Excel add-in using a graphical interface, see Create Excel Add-In Using Excel Add-In Compiler App.

  1. In MATLAB, locate the MATLAB code that you want to deploy as a standalone application. For this example, compile using the file mymagic.m located in matlabroot\toolbox\matlabxl\examples\xlmagic.

    appFile = fullfile(matlabroot,'toolbox','matlabxl','examples','xlmagic','mymagic.m');
  2. Build the Excel add-in using the compiler.build.excelAddIn function. Use name-value arguments to set the library and class names, and enable the generation of Visual Basic files.

    buildResults = compiler.build.excelAddIn(appFile, ...
    'AddInName','xlmagic', ...
    'ClassName','xlmagicclass', ...
    'GenerateVisualBasicFile','on');

    You can specify additional options in the compiler.build command by using name-value arguments. For details, see compiler.build.excelAddIn.

    The compiler.build.Results object buildResults contains information on the build type, generated files, included support packages, and build options.

    The function generates the following files within a folder named mymagicexcelAddIn in your current working directory:

    • dlldata.c

    • GettingStarted.html

    • includedSupportPackages.txt

    • xlmagic.def

    • xlmagic.bas

    • xlmagic.rc

    • xlmagic.xla

    • xlmagic_1_0.dll

    • xlmagic_dll.cpp

    • xlmagic_idl.h

    • xlmagic_idl.idl

    • xlmagic_idl.tlb

    • xlmagic_idl_i.c

    • xlmagic_idl_p.c

    • xlmagicClass_com.cpp

    • xlmagicClass_com.hpp

    • mccExcludedFiles.log

    • mwcomtypes.h

    • mwcomtypes_i.c

    • mwcomtypes_p.c

    • readme.txt

    • requiredMCRProducts.txt

    • unresolvedSymbols.txt

    Note

    The generated add-in does not include MATLAB Runtime or an installer. To create an installer using the buildResults object, see compiler.package.installer.

Install Add-In in Excel

  1. Open Microsoft Excel.

  2. Click the File tab, click Options, and then click the Add-Ins category.

  3. In the Manage box, click Excel Add-ins, and then click Go. The Add-Ins dialog box appears.

  4. Click Browse and locate the add-in xlmagic.xla.

  5. You are prompted to copy xlmagic.xla to the Addins folder associated with your user name. You can choose to copy the add-in or run it directly. For this example, select, YES. The add-in is copied and added to your workbook.

  6. Click OK to close the Add-Ins dialog box

Test Add-In

  1. Select a grid of 3-by-3 cells in the Excel workbook.

  2. Enter the following custom function in the formula bar:

    =mymagic(3)
    As you type my in the formula bar, mymagic appears as a custom function in Excel.

  3. Press Ctrl+Shift+Enter on the keyboard.

    The selected cells display the following output:

    8	1	6
    3	5	7
    4	9	2
  4. For additional examples, open the file xlmagic.xls located in matlabroot\toolbox\matlabxl\examples\xlmagic. This spreadsheet contains three custom VBA macros that demonstrate various ways of using the compiled MATLAB function.

Distribute Add-In

To distribute your add-in to end users, see Distribute Add-Ins and Integrate into Microsoft Excel.

See Also

Topics