在 模块级别 用于定义包含一个或多个元素的用户定义 数据类型 。
语法
[ 专用 | 公共 ] 键入varname
-  
              elementname [ ( [ subscripts ] ) ] As类型 
[ elementname [ ( [ 下标 ] ) ] Astype ]
. . .
Type 语句语法具有以下部分:
| Part | 说明 | 
|---|---|
| Public | 可选。 用于声明对所有项目中的所有模块中的所有过程可用的用户定义的类型。 | 
| Private | 可选。 用于声明用户定义的类型,这些类型仅在用于生成声明的模块中可用。 | 
| varname | 必填。 用户定义的类型的名称;遵循标准变量命名约定。 | 
| elementname | 必填。 用户定义的类型的元素的名称。 元素名称也遵循标准变量命名约定(可使用的关键字除外)。 | 
| 下标 | 如果未在 lower 中显式声明,则数组的下限由 Option Base 语句控制。 如果不存在 Option Base 语句,则下限为零。 | 
| type | 必填。 元素的数据类型;可以是 字节、 布尔值、 整数、 长、 货币、 单 (、 双精度、 小数 (当前不支持) 、 日期、 字符串 (的可变长度字符串) 、固定长度字符串的 字符串长度 () 、 Object、 Variant、另一个用户定义类型或 对象类型。 | 
备注
Type 语句只能在模块级别使用。 使用 Type 语句声明用户定义类型后,可以在声明 范围内的 任意位置声明该类型的变量。 使用 Dim 、 Private 、 Public 、 ReDim 或 Static 声明用户定义的类型的变量。
在标准模块和类模块中,默认情况下,用户定义的类型是公用的。 可以使用专用关键字 (keyword) 更改此可见性。
Type...End 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 
在前面的示例中, StateData 包括 CityCode 静态数组,并且记录 Washington 的结构与 相同 StateData。
在用户定义的类型中声明固定大小的数组时,必须使用数值文本或常量而非变量来声明其维度。
示例
此示例使用 Type 语句定义用户定义的数据类型。 Type 语句仅在模块级别上使用。 如果它在类模块中出现,则 Type 语句的前面必须有关键字 Private 。
Type EmployeeRecord    ' Create user-defined type. 
    ID As Integer    ' Define elements of data type. 
    Name As String * 20 
    Address As String * 30 
    Phone As Long 
    HireDate As Date 
End Type 
Sub CreateRecord() 
    Dim MyRecord As EmployeeRecord    ' Declare variable. 
 
    ' Assignment to EmployeeRecord variable must occur in a procedure. 
    MyRecord.ID = 12003    ' Assign a value to an element. 
End Sub
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。