Create or overwrite MATLAB matrix with data from Microsoft Excel VBA variable


MLPutVar ML_var_name, VBA_var_name
out = MLPutVar ML_var_name, VBA_var_name


MLPutVar ML_var_name, VBA_var_name creates or overwrites matrix ML_var_name in MATLAB® workspace with data in VBA_var_name. Creates ML_var_name if it does not exist. If ML_var_name exists, this function replaces the contents with data from VBA_var_name.

out = MLPutVar ML_var_name, VBA_var_name lets you catch errors when executing MLPutVar. If MLPutVar fails, then out is a string containing error code. Otherwise, out is 0.

Input Arguments


Name of MATLAB matrix to create or overwrite.

ML_var_name in quotes directly specifies the matrix name. ML_var_name without quotes specifies a VBA variable that contains the matrix name as a string.


Name of VBA variable whose contents are written to ML_var_name.

Use VBA_var_name without quotes.

Output Arguments


0 if the command succeeded. Otherwise, a string containing error code.


expand all

Create a MATLAB Matrix Using Data Stored in a VBA Variable

Create (or overwrite) the MATLAB matrix K with the data in the VBA variable DataK:

Sub Put()
MLPutVar "K", DataK
End Sub

More About

expand all


  • Use MLPutVar only in a macro subroutine, not in a macro function or in a subroutine called by a function.

  • Empty numeric data cells within VBA_var_name become numeric zeros within the MATLAB matrix identified by ML_var_name.

  • If any element of VBA_var_name contains string data, VBA_var_name is exported as a MATLAB cell array. Empty string elements within VBA_var_name become NaNs within the MATLAB cell array.

See Also

Was this topic helpful?