规则和对过程的命名规则相同.这条语句中的数据类型部分可以是表4-1中的任何一种数据类型.
变量名必须以字母开始,并且只能包含字母数字和特定的特殊字符,不能包含空格句号惊叹号,也不能包含字符@ & $ #.名字最大长度为255个字符
在接下来的练习中将说明如何在VBA中使用变量,你将要输入你的名字,并用一个消息框将其显示出来.具体步骤如下:
1)创建一个名为\显示你的名字\的子程序. 2)输入以下代码:
Public Sub 显示你的名字() Dim s名字 As String
s名字 = Inputbox(\请输入你的名字:\ Msgbox \你好\名字
End Sub
3)将鼠标放到过程中的任何地方,按下F5键运行过程,会显示一个输入框.
4)输入你自己的名字并按回车键,会显示一个消息框,显示的文字中包含你自己的名字.
5)单击\确定\按钮,返回过程中.
在Dim语句中不必提供数据类型.如果没有数据类型,变量将被定义为Variant类型,因为VBA中默认的数据类型是Variant.你知道这一点后,最初的反应也许是觉得应该不用自己决定数据类型,而将一切抛给VBA.这种观念是完全错误的.你必须决定选择使用何种数据类型。因为Variant数据类型占用存储空间较大(16或22字节)而且它将影响程序的性能。VBA必须辨别Variant类型的变量中存储了何种类型的数据。
4.4.3 变量命名的惯例
下表给出了推荐的变量命名惯例
表4-2 变量命名的前缀
4.4.4 使用数组
如果你使用过其他编程序语言,可能对数组已经比较熟悉了.数组是具有相同数据类型并共同享有一个名字的一组变量的集
合.数组中的元素通过索引数字加以区分,定义数组的方法如下: Dim array_name(n) As type (其中n是数组元素的个数)
例如,如果要创建保存10个学生名字的数组,可以用以下语句:
Dim s学生名字(9) As Integer
注意,括号中的数字是9而不是10.这是因为在默认的情况下,第一个索引数字是0.数组在处理相似信息时非常有用.假设要处理15门考试成绩,可以创建15个独立的变量,这意味着要使用15个Dim语句。也可以创建一个数组来保存考试成绩,具体如下: Dim s考试成绩(14) As Integer
声明数组时的另一种方法是不给定大小。可以在程序运行时定义其大小。通过创建动态数组就可以做到。例如,你的程序要创建一表格,可以提示用户输入表格的行和列的数目。声明动态数组的语法如下:
Dim dyn_array() As type
对数组声明后可以在程序运行时用:ReDim语句指定数组的大小:
ReDim dyn_array()(array_size)
参数array_size代表数组的新大小。如果要保留数组的数值,请在ReDim语句后使用保留字Preserve,具体语法如下: ReDim Preserve dyn_array(array_size)
4.4.5 变量赋值
声明变量后就可以给变量赋值。请注意下列语句中为数组变量赋值时索引数字的使用。
程序清单4-4
Dim i人数 As Integer Dim i考试成绩 As Integer Dim i As Integer
i人数 = inputbox(\输入学生的人数:\ ReDim Preserve i考试成绩(i数量) For i = 1 to i人数
i考试成绩(i) = inputbox(\输入考试成绩\i )
Next
4.5 使用常量
现在,你已经知道变量是存储非静态信息的存储容器.当存储静态信息时可以创建常量.它可以供程序多次使用而且便于记忆.比如圆周率比3.1415926好理解得多.
要声明常量并设置常量的值,需要使用const语句.常量声明后,不能对它赋一个新的值.例如,假设需要声明一个常量来保存销项税率,可以使用以下语句: conet 销项税率 As Long = 0.17
通常常量声明时用全大写字母以区分变量.
4.6 作用域
到现在为止,已经学习了如何定义变量和常量,但是还不知道在何处定义.可以在两个地方定义常量和变量:
过程中定义和在模块顶部一个名为\通用声明\的区域内定义.而且定义的位置就决定了租用域.
在过程中声明,该变量只能在该过程中使用,其他过程中不能使用这个变量和常量,这中变量成为局部变量或过程级变量;在模块顶部声明的变量称为模块级变量,该变量在该模块的所有过程中都可以使用。