VBA 编程基础

2019-11-04 08:27:20丽君

不能在范围的相同层次中使用重复的名称。例如,不能在同一过程中声明两个命名为 age 的变量。然而,可以在同一模块中声明一个命名为 age 的私有变量和命名为 age 的过程级别的变量。
注意:
Visual Basic 不区分大小写,但它会在名称被声明的语句处保留大写。

11.3.4 声明变量、常数和数组

11.3.4.1 声明变量
通常会使用 Dim 语句来声明变量。一个声明语句可以放到过程中以创建属于过程的级别的变量。或在声明部分可将它放到模块顶部,以创建属于模块级别的变量。
下面的示例创建了变量 strName 并且指定为 String 数据类型。 Dim strName As String
如果该语句出现在过程中,则变量 strName 只可以在此过程中被使用。如果该语句出现在模块的声明部分,则变量 strName 可以被此模块中所有的过程所使用,但是不能被同一工程中不同的模块所含过程来使用。为了使变量可被工程中所有的过程所使用,则在变量前加上 Public 语句,如以下的示例:
Public strName As String
变量可以声明成下列数据类型中的一种:Boolean、Byte、 Integer、Long、Currency、Single、Double、Date、String(变长字符串)、String * length (定长字符串)、Object 或 Variant。如果未指定数据类型,则 Variant 数据类型被赋予默认。也可以使用 Type 语句来创建用户自定义类型。
可以在一个语句中声明几个变量。而为了指定数据类型,必须将每一个变量的数据类型包含进来。在下面的语句中,变量 intX、 intY、与 intZ 被声明为 Integer 类型。
Dim intX As Integer, intY As Integer, intZ As Integer
在下面的语句中,变量 intX 与 intY 被声明为 Variant 类型;只有intZ 被声明为 Integer 类型。
Dim intX, intY, intZ As Integer
在声明语句中,不一定要提供变量的数据类型。若省略了数据类型,则会将变量设成 Variant 类型。
使用 Public 语句:可以使用 Public 语句去声明公共模块级别变量。
Public strName As String
公有变量可用于工程中的任何过程。如果公有变量是声明于标准模块或是类模块中,则它也可以被任何引用到此公有变量所属工程的工程中使用。
使用 Private 语句:可以使用 Private 语句去声明私有的模块级别变量。
Private MyName As String
私有变量只可使用于同一模块中的过程。
注意:
在模块级别中使用 Dim 语句与使用 Private 语句是相同的。不过使用 Private 语句可以更容易地读取和解释代码。
使用Static 语句:当使用 Static 语句取代 Dim 语句时,所声明的变量在调用时仍保留它原先的值。
使用Option Explicit 语句:在 Visual Basic 中可以简单地通过一个赋值语句来隐含声明变量。所有隐含声明变量都为 Variant 类型,而Variant 类型变量比大多数其他类型的变量需要更多的内存资源。如果显式地声明变量为指定的数据类型,则应用程序将更有效。显式声明所有变量减少了命名冲突以及拼写错误的发生率。