XLL+ Class Library

Argument Dialog - Array Tab

When you use the Add Argument command or the Edit Argument command to specify the details of an argument, this dialog appears. You can specify the name and description of the argument, its data type, and many other features.

Depending on the number of dimensions selected for the argument, various different fields will appear.

Vector data types

Matrix data types



Simple data types can be specified as scalars (a single value), vectors (a one-dimensional array) or matrices (2-dimensional arrays). In each case, the Wizard will generate code to transform the data from an Excel format to a C++ collection, and to check that all cells are of the right type.

If you specify a vector or matrix, more fields will appear that let you specify any further bounds on the shape of the argument, and the details of the mapping of matrix cells.


The Fill combo determines how empty space in an input array will be treated. This may be set to any of the following values:


The Non-numerics combo determines how non-numeric values (such as strings or errors) will be treated if found in a numeric input array. This may be set to any of the following values:

Vector layout

This combo defines whether vector inputs are required to be rows or columns, or are not constrained.

If a vector is specified to be as Row or as Column, then an error will be generated by inputs that do not contain a single row or a single column, respectively.

If a vector is specified as Row or column then it will be accepted only if it contains 1 row or 1 column.

Matrix layout

This combo defines whether matrix inputs are read row-wise or column-wise. You can specify whether data held in rows is stored together, or whether data held in columns is stored together.

Matrix data

This combo specifies the storage of the 2-dimensional C++ data after it is extracted from Excel's data format. Depending on what you are going to do with the data, you may want an array of pointers to arrays, or alternatively you may want all the data to be in a single continuous array.


The Bounded check-box determines whether an argument is constrained as to its bounds in a given dimension. If the check-box is set to True, then the lower and upper bound of the dimension should be specified.

Lower bound

If the dimension is bounded, this field specifies the lower bound of the extracted data. You may be passing your data to a function which expects its arrays to be one-based, rather than zero-based. If so, enter 1 as the lower bound, and a single empty item/row/column will be inserted at the start of the extracted data.

Upper bound

If the dimension is bounded, this field specifies the upper bound of the extracted data. This can be an integer, which which will constrain the input to be of a fixed size, and will generate an error message if it is not.

Alternatively, the upper bound can be a 'C' variable name, in which case the variable will be set to the size of the input's dimension. Any other inputs which are also bound to the same 'C' variable will be constrained to be the same size.

See Also

Function Wizard | Argument Dialog - General Tab | Argument Dialog - Members Tab | Function Wizard Dialog