Deftype 语句
在模块级别用于设置变量的默认数据类型、传递给过程的参数,以及 Function 和 Property Get 过程(其名称以指定字符开头)的返回类型。
语法
DefBoolletterrange, [ letterrange ] . .DefByteletterrange, [ letterrange ] . 。DefIntletterrange, [ letterrange ] . .DefLngletterrange, [ letterrange ] . .DefLngLngletterrange, [ letterrange ] . . (仅在 64 位平台上有效,) DefLngPtrletterrange, [ letterrange ] 。DefCurletterrange, [ letterrange ] . 。DefSngletterrange, [ letterrange ] . .DefDblletterrange, [ letterrange ] . .DefDecletterrange, [ letterrange ] . 。DefDateletterrange, [ letterrange ] . .DefStrletterrange, [ letterrange ] . 。DefObjletterrange, [ letterrange ] . .DefVarletterrange, [ letterrange ] . 。
所需的 letterrange 参数具有以下语法: letter1 [ -letter2 ]
letter1 和 letter2 参数指定可为其设置默认数据类型的名称区域。 每个参数表示变量、参数、 函数 过程或 Property Get 过程名称的第一个字母,可以是字母表的任何字母。 letterrange 中的字母不区分大小写。
备注
语句名称确定数据类型。
语句 | 数据类型 |
---|---|
DefBool | Boolean |
DefByte | Byte |
DefInt | Integer |
DefLng | Long |
DefLngLng | LongLong (仅在 64 位平台上有效) |
DefLngPtr | LongPtr |
DefCur | Currency |
DefSng | Single |
DefDbl | Double |
DefDec | Decimal(当前不受支持) |
DefDate | Date |
DefStr | String |
DefObj | Object |
DefVar | Variant |
例如,在以下程序片段中, Message
是一个字符串变量。
DefStr A-Q
. . .
Message = "Out of stack space."
Deftype 语句仅影响它所用于的模块。 比如,某个模块中的 DefInt 语句仅影响变量、传递给过程的参数以及在该模块中声明的 Function 和 Property Get 过程的返回类型的默认数据类型;其他模块中变量、参数和返回类型的默认数据类型不会受到影响。 如果没有使用 Deftype 语句进行明确声明,则所有变量、参数、Function 过程和 Property Get 过程的默认数据类型均为 Variant。
指定字母范围时,通常会为以 字符集前 128 个字符中的字母开头的变量定义数据类型。 但是,指定字母范围 A–Z 时,为所有变量(包括字符 集的扩展部分 (128-255) )中的国际字符开头的变量,将默认值设置为指定的数据类型。
指定范围 A-Z 后,不能使用 Def类型 语句进一步重新定义变量的任何子范围。 指定范围后,如果在另一个 Def类型 语句中包含以前定义的字母,则会发生错误。 但是,可以通过将 Dim 语句与 As类型 子句结合使用,显式指定任何已定义或未定义的变量的数据类型。
例如,可以在模块级别使用以下代码将变量定义为 Double ,即使默认数据类型为 Integer 也是如此。
DefInt A-Z
Dim TaxRate As Double
Deftype 语句不会影响用户定义的类型元素,因为这些元素必须明确声明。
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。