8.2.4 变量

8.2.4 变量

变量是指在程序运行期间其值可以改变的量,在程序中,每个变量都有一个唯一的标识符,表示该变量的存储位置,用户可以通过变量名访问内在中的数据。

1.变量的申明

一般来说,在程序中使用变量时需要声明,声明变量可以起到两个作用,一是指定变量的名称和数据类型,二是指定变量的取值范围。变量声明有3种类型。

(1)显示声明

用Dim语句进行声明,格式为:

Dim<变量1>As<类型1>[,<变量2>As<类型2>[,...]]

其中,Dim为关键字。该语句的功能是:定义指定的变量并为其分配内存空间。As类型用于指定的类型,如省略,则默认变量为Variant类型。

例如:

Dim StudentName As String或Dim StudentName$

Dim Grade As Integer,AvgGrade As Single

Dim Passed As Boolean,ExamDate As Date

(2)强制声明

在程序开始处直接输入语句

Option Explicit

由要求程序中所有变量必须进行显示声明。否则运行程序时弹出警告框,提示编辑错误:变量未定义。

(3)隐式声明

在默认情况下,一个变量可以不经声明即可使用,这时该变量被自动声明为Variant类型(变体型)。Variant类型变量可以接纳各种不同的数据,但使用这种数据类型缺乏可读性,即数据类型不明确。

2.变量的作用域

变量的作用域就是变量在程序中的有效范围,正确使用变量,必须明确其作用域,程序运行时,对象之间数据的传递是依靠变量来完成的,变量的作用范围不当,就将导致对象的数据出错。

变量作用域分为局部变量、模块变量和全局变量三类。

(1)局部变量

局部变量指定义在模块过程中内部的变量,在子过程或函数过程中定义的变量都局部变量,其作用范围是其定义的过程。

(2)模块变量

模块变量是在模块的起始位置,所有过程之外定义的变量,运行时在模块所包含的所有子过程或函数过程中都可见,在该模块的所有过程中都可以使用该变量。

(3)全局变量

全局变量就是在标准模块的所有过程之外的起始位置定义的变量,运行时标准模块的所有子过程或函数过程中都可见,定义时,使用Public关键字。格式为:

Public变量名As数据类型

3.变量的生命周期

根据变量定义的作用域不同,变量的生命周期也不同。

局部变量的生命周期与该过程相同,仅在该过程运行期间有效。

模块变量的作用域覆盖整个应用程序,但只对该模块中的过程有效。

全局变量的作用域覆盖整个应用程序,对程序运行整个期间都有效。

当全局变量与局部变量同名时,全局变量的作用域不包括同名局部变量所在的模块。