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.


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 Library Compiler App

Package the function into an Excel add-in using the Library Compiler app. Alternatively, if you want to create an Excel add-in from the MATLAB command window using a programmatic approach, see Create Excel Add-in Using

  1. To open the Library Compiler app, type libraryCompiler at the MATLAB prompt.

    Alternatively, on the MATLAB Apps tab, on the far right of the Apps section, click the arrow. In Application Deployment, click Library Compiler.

  2. In the MATLAB Compiler project window, select Excel Add-in in the TYPE section.

    Library Compiler with Excel Add-in type selected and mymagic.m in the exported function section

  3. In the Library Compiler app project window, specify the files of the MATLAB application that you want to deploy.

    1. In the Exported Functions section of the toolstrip, click Add exported function to the project.

    2. In the Add Files window, browse to the example folder, and select the function you want to package. Click Open.

    The function is added to the list of exported function files. Repeat this step to package multiple files in the same application.

  4. In the Packaging Options section of the toolstrip, decide whether to include the MATLAB Runtime installer in the generated application by selecting one of the options:

    • Runtime downloaded from web — Generate an installer that downloads the MATLAB Runtime and installs it along with the deployed MATLAB application. You can specify the file name of the installer.

    • Runtime included in package — Generate an application that includes the MATLAB Runtime installer. You can specify the file name of the installer.


      The first time you select this option, you are prompted to download the MATLAB Runtime installer.

  5. Next, define the name of your add-in and verify the class mapping for the .m file that you are building into your application.

    1. The Library Name field is automatically populated with mymagic as the name of the assembly. Rename it as xlmagic. The same name is followed through in the implementation of the add-in.

    2. Verify that the function defined in mymagic.m is mapped into xlmagicclass. Double-click on the class to change the class name.

    Library Compiler Class Name section with class name xlmagicclass for the method mymagic

  6. Customize the packaged application and its appearance:

    • Library information — Editable information about the deployed application. The generated installer uses this information to populate the installed application metadata. See Customize the Installer.

    • Additional installer options — Edit the default installation path for the generated installer and selecting custom logo. See Change the Installation Path .

    • Files required for your library to run — Additional files required by the generated application to run. These files are included in the generated application installer. See Manage Required Files in Compiler Project.

    • Files installed for your end user — Files that are installed with your application.

      See Specify Files to Install with Application.

    • Additional runtime settings — Platform-specific options for controlling the generated executable. See Additional Runtime Settings.

    Library Compiler with project name xlmagic and class name xlmagicclass

Package the Application

When you are finished selecting your packaging options, save your Library Compiler project and generate the packaged application.

  1. Click Package.

    In the Save Project dialog box, specify the location to save the project.

  2. In the Package dialog box, verify that Open output folder when process completes is selected.

    When the packaging process is complete, examine the generated output in the target folder.

    • Three folders are generated: for_redistribution, for_redistribution_files_only, and for_testing.

      For more information about the files generated in these folders, see Files Generated After Packaging MATLAB Functions.

    • The log file PackagingLog.html contains packaging results.

Create Excel Add-in Using

As an alternative to the Library Compiler app, you can create an Excel add-in using a programmatic approach. If you have already created an add-in using the Library Compiler, see Install Add-In in Excel.

  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 function. Use name-value arguments to set the library and class names, and enable the generation of Visual Basic files.

    buildResults =, ...
    'AddInName','xlmagic', ...
    'ClassName','xlmagicclass', ...

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

    The 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


    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:

    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


Related Topics