Deftype在
模块级别上,为
变量和传给过程的参数,设置缺省
数据类型,以及为其名称以指定的字符开头的 Function 和 Property Get 过程,设置返回值类型。
在下面的
程序段中,Message 就是一个字符串
变量变量和传给过程的参数的缺省
数据类型,以及 Function 和 Property Get 过程的返回值的类型有效;而其它模块中的
变量、参数、以及返回值的缺省数据类型就不受影响。如果不用 Deftype 语句显式地声明,则所有
变量、参数、Function 过程、以及 Property Get 过程的缺省
数据类型都是 Variant。当指定字符范围时,通常为以
字符集的前 128 个字符中的字符开始的变量定义
数据类型。不过,如果指定的字符范围是A–Z,则将所有的
变量,包括以
字符集的扩展部分(128–255) 中的国际字符开始的变量的缺省类型都设为指定的类型。在指定了A–Z 范围之后,就不能再使用 Deftype 语句来重新定义任何子范围的
变量了。在指定一个范围后,如果另一个 Deftype 语句定义的范围中含有前面已定义的字符,就会产生错误。不过,不管
变量是否已定义,都可以使用带 As type 子句的 Dim 语句来显式指定其
数据类型。例如,可以在模块级使用如下代码将一个缺省
数据类型为 Integer 的
变量定义为 Double:DefInt A-ZDim TaxRate As DoubleDeftype 语句对用户定义类型中的元素无影响,因为这些元素必须显式声明。