Deftype 语句

模块级别用于设置变量的默认数据类型、传递给过程的参数,以及 FunctionProperty 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 ]

letter1letter2 参数指定可为其设置默认数据类型的名称区域。 每个参数表示变量、参数、 函数 过程或 Property Get 过程名称的第一个字母,可以是字母表的任何字母。 letterrange 中的字母不区分大小写。

备注

语句名称确定数据类型。

语句 数据类型
DefBool Boolean
DefByte Byte
DefInt Integer
DefLng Long
DefLngLng LongLong (仅在 64 位平台上有效)
DefLngPtr LongPtr
DefCur Currency
DefSng 单精度
DefDbl Double
DefDec Decimal(当前不受支持)
DefDate Date
DefStr String
DefObj Object
DefVar Variant

例如,在以下程序片段中, Message 是一个字符串变量。

DefStr A-Q
. . .
Message = "Out of stack space."

Deftype 语句仅影响它所用于的模块。 比如,某个模块中的 DefInt 语句仅影响变量、传递给过程的参数以及在该模块中声明的 FunctionProperty 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。