Visual Basic for Applications Reference
[Private | Public] Typevarname
elementname [([subscripts])] Astype
[elementname [([subscripts])] Astype]
. . .
The Type statement syntax has these parts:
|Public||Optional. Used to declare user-defined types that are available to all procedures in all modules in all projects.|
|Private||Optional. Used to declare user-defined types that are available only within the module where the declaration is made.|
|varname||Required. Name of the user-defined type; follows standard variable naming conventions.|
|elementname||Required. Name of an element of the user-defined type. Element names also follow standard variable naming conventions, except that keywords can be used.|
|subscripts||When not explicitly stated in lower, the lower bound of an array is controlled by the OptionBase statement. The lower bound is zero if no OptionBase statement is present.|
|type||Required. Data type of the element; may be Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal(not currently supported), Date, String (for variable-length strings), String * length (for fixed-length strings), Object, Variant, another user-defined type, or an object type.|
The Type statement can be used only at module level. Once you have declared a user-defined type using the Type statement, you can declare a variable of that type anywhere within the scope of the declaration. Use Dim, Private, Public, ReDim, or Static to declare a variable of a user-defined type.
User-defined types are often used with data records, which frequently consist of a number of related elements of different data types.
The following example shows the use of fixed-size arrays in a user-defined type:
Type StateData CityCode (1 To 100) As Integer ' Declare a static array. County As String * 30 End Type Dim Washington(1 To 100) As StateData
In the preceding example,
StateData includes the
CityCode static array, and the record
Washington has the same structure as
When you declare a fixed-size array within a user-defined type, its dimensions must be declared with numeric literals or constants rather than variables.