COM Objects

Access COM components and ActiveX® controls from MATLAB®

The Microsoft® Component Object Model (COM) provides a framework for integrating reusable, binary software components into an application. Because components are implemented with compiled code, the source code can be written in programming languages that support COM. Upgrades to applications are simplified, as components can simply be swapped without the need to recompile the entire application. In addition, a component's location is transparent to the application, so components can be relocated to a separate process or even a remote system without having to modify the application.

Alternatively, consider using the Microsoft .NET Framework.

MATLAB supports COM and the .NET Framework integration on the Microsoft Windows® platform only.


actxserverCreate COM server
actxcontrolCreate Microsoft ActiveX control in figure window
actxcontrollistList currently installed Microsoft ActiveX controls
actxcontrolselectCreate Microsoft ActiveX control from UI
methodsviewView class methods
eventlistenersList event handler functions associated with COM object events
registereventAssociate event handler for COM object event at run time
unregisteralleventsUnregister all event handlers associated with COM object events
unregistereventUnregister event handler associated with COM object event at run time
iscomDetermine whether input is COM or ActiveX object
iseventDetermine whether input is COM object event
isinterfaceDetermine whether input is COM interface


COMAccess COM components and ActiveX controls from MATLAB

Examples and How To

Microsoft Office

Write Data to Excel Spreadsheet Using ActiveX

This example shows how to write a MATLAB matrix to an Excel® spreadsheet.

Read Spreadsheet Data Using Excel as Automation Server

This example shows how to use a COM Automation server to access another application from MATLAB.

Change Cursor in Spreadsheet

This example shows how to change the cursor icon in an Excel® spreadsheet.

Change Row Height in Range of Spreadsheet Cells

This example shows how to change the height of a row, defined by a Range object, in a spreadsheet.

Insert Spreadsheet After First Sheet

This example shows how to skip an optional input argument in the Excel Add method, used to insert a sheet into a workbook.

Connect to Existing Excel Application

This example shows how to read data from an open file, weekly_log.xlsx, in MATLAB.

Display Message for Workbook OnClose Event

This example shows how to handle a COM interface event, how to set up an event in a Microsoft Excel workbook object, and how to handle its BeforeClose event.

Explore COM Objects

Learn about a COM object using MATLAB commands

ActiveX Controls

MATLAB Sample ActiveX Control mwsamp

MATLAB includes an example COM control that draws a circle on the screen, displays some text, and fires events when the user single- or double-clicks the control.

Redraw Circle in mwsamp Control

This example shows how to call a method of the mwsamp control to redraw a circle.

Display Event Messages from mwsamp Control

This example shows how to handle events fired by the MATLAB ActiveX control, mwsamp2.

Add Position Property to mwsamp Control

This example shows how to add a custom property, Position to the mwsamp control.

Combine Event Handlers as MATLAB Local Functions

This example shows how to consolidate event handlers into a single file using local functions.

Save mwsamp2 COM Control

This example shows how to restore original mwsamp2 control settings.

Deploy ActiveX Controls Requiring Run-Time Licenses

When you deploy a Microsoft ActiveX control that requires a run-time license, include a license key, which the control reads at run time.


MATLAB COM Integration

COM concepts and an overview of COM support in MATLAB software

Getting Started with COM

Examples that show how to use COM interface with MATLAB software

Registering Controls and Servers

Before using COM objects, you must register their controls and servers.

Create COM Objects

How to create Microsoft ActiveX controls and COM server objects

Handle COM Data in MATLAB

Pass data to and handle data from a COM object

COM Object Properties

List property names and set values, work with multiple objects and properties, use the Property Inspector, use enumerated values and custom properties

COM Methods

You execute, or invoke, COM functions or methods belonging to COM objects.

COM Events

Respond to events, write event handlers

COM Event Handlers

For controls, register handler functions either at the time you create an instance of the control (using actxcontrol), or any time afterward (using registerevent).

Save and Delete COM Objects

Use these MATLAB functions to save and restore the state of a COM control object.

COM Object Interfaces

Use COM interfaces

COM Collections

COM collections are a way to support groups of related COM objects that can be iterated over.

Supported Client/Server Configurations

COM client-server configurations in MATLAB software

Microsoft Forms 2.0 Controls

Microsoft Forms 2.0 controls are designed for use with applications enabled by Microsoft Visual Basic® for Applications (VBA).

MATLAB Application as DCOM Client

Distributed Component Object Model (DCOM) is a protocol that allows clients to use remote COM objects over a network.


MATLAB COM Support Limitations

Microsoft does not support loading 32-bit DLLs or in-process COM servers into a 64-bit application, or conversely.

Interpreting Argument Callouts in COM Error Messages

When a MATLAB client sends a command with an invalid argument to a COM server application, the server sends back an error message in the following format.