Visual Basic程序设计
第四 讲
第三章 Visual Basic编程基础(一)
2
数据类型、常量和变量
VB中的基本语句
数据的输入语句
数据的输出语句本章要点
常用内部函数和表达式
3
§ 3.1数据类型
数据类型是数据的表示和存储形式。
VB共有三种数据类型。
? 基本数据类型
? 用户自定义数据类型
? 枚举类型
Visual Basic定义的基本数据类型如
下页表 3.1所示。
4
Visual Basic定义的基本数据类型
图 3-1
数
值
型
的
数
据
5
一、基本数据类型
不同类型的数据, 所占的存储空间不一
样, 选择使用合适的数据类型, 可以优化程
序代码的编写 。
1,整型数是不带小数点和 E指数的数 。
例如,123,0,-24,19800等 。
整型 (Integer)
整数分为
长整型 (Long)
6
2,实数是带小数点和 E指数的数 。 常用于表示数
值较大或较小的数字 。
例如,12.3,-24.,1.98E04,等 。
单精度浮点数 (Single)
实数分为
双精度浮点数 (Double)
单精度浮点数是用 4个字节存放, 其表示
数值的范围比较小 。 双精度浮点数是用 8个字
节来存放 。 表示数据范围比较大 。
一、基本数据类型
7
3,货币型 (Currency)数据以 8个字节来存放, 它
支持小数点后面 4位和小数点前面 15位, 是一
个精确的定点数据类型, 适用于货币运算 。
4,字节型 ( Byte ) 的数据类型表示 ( 0~255)
无符号的数, 常用于访问二进制文件, 图形
和声音文件等 。 当需要把数据存放成字节且
必须访问各字节时可采用字节类型 。
一、基本数据类型
8
一、基本数据类型
5,字符型 ( String ) 的数据类型只存放文本, 它
是用双引号括起来的一串字符 。 其中的西文字
符按 ASCII编码表示, 占一个字节 。 一个汉字
或全角字符占两个字节 。 不含任何字符的串称
为空串
在 Visual Basic中有两种类型字符串:
(1)变长字符串 最多可包含大约 20亿个字符 。
(2)定长字符串 可以包含 1到大约 64K个字符 。
9
6,布尔型( Boolean )数据。其值只有两
个:真 (True)和假 (False),经常被用来表
示逻辑判断的结果。任何时候只有两种
状态的数据,如,True/False”、
,Yes/No”、,On/Off”等,都可以表示
为 Boolean型,在 Visual Basic中 0表示
False,非 0表示 True。
7,日期型 ( Date ) 数据用来表示日期和时
间, 用 8个字节存放 。 可以表示多种格式
的日期和时间 。 在程序使用时, 日期类
型必需用, #”括起来 。
10
8.对象 ( Object) 型数据用来表示应用程序中
或其他某些应用程序中的对象 。 可以用 Set语
句指定一个被声明为 Object的变量去引用应
用程序所识别的任何实际对象 。 例如:
Dim objDb As Object
Set objDb=OpenDatabase(“d:\Vb\Biblio.mdb”)
9.Variant类型的数据能够表示所有系统定义
的数据类型, 当把它们赋予 Variant型时, 不
必在这些数据的类型间进行转换, Visual
Basic会自动完成任何必要的转换 。 Variant数
据类型还包含三种特定值,Empty,Null、
Error。
11
? Empty值用于确定是否已将一个值赋予所创建的
变量 。 赋值之前, Variant 变 量 具 有 空 值
( Empty) 。 用 IsEmpty函数可以测定一个变量
建立后是否被赋过值 。
? Null值常用于数据库应用程序, 表示求未知或丢
失为空的数据 。 用 IsNull函数可以判断一个
Variant变量的值是否为 Null。
? Error值是指已发生过程中的错误状态 。
Variant是最为灵活的数据类型可以根据不同
的需要进行各种数据类型的转换 。 正是由于它的
灵活性, 又使得它存在着明显的缺点, Variant
数据类型比其它类型的数据占有更多的内存空间 。
12
二、用户自定义数据类型
可以把不同类型的变量组合起来创建用户
定义的类型 。
使用 Type语句创建用户定义类型, 它必须
放在模块的声明部分 。 用户定义类型可用关键
字声明为 Private或 Public,用 Type语句创建
用 户定义类型格式如下:
[Private | Public] Type 数据类型名
数据类型元素名 As 数据类型
数据类型元素名 As 数据类型
……
End Type
13
例如,定义一个地址数据
Type Address
Street As String
ZipCode As String
Phone As String
End Type
这个地址数据里包括三个属性, 街区,
邮政编码和电话, 可把某数据定义成为此
类型:
Dim MyHome As Address
上面语句是将 MyHome定义为地址数据 。
14
要调用或改变, MyHome”的值时,
类似于对对象的属性的操作:
变量名,域名=, ……,
为了简化书写重复的部分,可以用关键字
,With”;例如上面的 MyHome数据:
With MyHome
.Street =“阜成路,
.ZipCode =“100037”
.Phone =“12345678”
End With
15
三、枚举类型
1、枚举的概念
所谓枚举是指将变量的值一一列举出来,变
量的值只限于列举出来的值的范围。
2、声明枚举型的格式如下:
[Private | Public] Enum 类型名称
成员名 [ = 常量表达式 ]
成员名 [ = 常量表达式 ]
……
End Enum
3,格式说明
[ Private] 可选项。表示该枚举类型只在说明它的
模块中有效。
16
三、枚举类型
[ Public ] 可选项。表示该枚举类型是公有
的,其作用范围是整个程序。
[类型名称 ] 必需的,为该枚举类型的名称。
[成员名 ] 必需的,用来指定该枚举类型的
组成元素。
[= 常量表达式 ] 可选项。指明元素的值。
在缺省的情况下,在枚举中的第一个常数
被初始化为 0,其后的常数为比其前面的常
数加 1的数值。
17
【 例 3-1】 下面的枚举 Days中,包含了一个数值
为 0的常数 Sun,数值为 1常数的 Mon,数值为 2
常数 Tue等。
Public Enum Days
Sun
Mon
Tue
Wed
Thu
Fri
Sat
End Enum
18
VB提供了内置的枚举 vbDayOfweek,
包括了与星期的七天相对应的常数 。 如
希望查阅预定义的枚举常数, 在代码窗
口中键入 vbDayOfweek,后跟一个句号,
VB将自动显示该枚举常数的内容 。 如
下页图 3-1所示
19
图 3-1 VB内部常数自动列出成员
20
可以使用赋值语句给枚举中的常数赋
值 。 可以赋值为任何长整数, 包括负数 。
例如, 可能希望常数数值小于 0以便代表出
错条件 。
在以下的枚举数据中,常数 Invalid被
赋值为 -1,而常数 Sun被赋值为 0。因为 Sat
是枚举数据中的第一个元素,所以也被赋
值为 0,Mon的数值为 1(比 Sun的数值大
1),Tue的数值为的数值为 2等。
21
Public Enum WorkDays
Sat
Sun = 0
Mon
Tue
Wed
Thu
Fri
Invalid = -1
End Enum
22
注意, VB将枚举中的常量数值看作长整
数 。 如果将一个浮点数值赋值给一个枚举中
的常数, VB将会使该数值取为最接近的长整
数 。
当引用单个常数时,为了避免模糊引用,
应在常数名称前加上枚举名。下列代码引用
Days和 WorkDays枚举中 Sat常数,并在立即
窗口中显示它们不同的数值如图 3-2所示。
23
即,Days.Sat =6,WorkDays.Sat =0。
Debug.Print, Days.Sat =, & Days,Sat
Debug.Print,WorkDays.Sat =, & _
WorkDays,Sat
图 3-2
24
当向一个枚举中的常数赋值时,也可以使
用另一个枚举中的常数的数值。例如,下述
WorkDays枚举的声明与前述的声明是等同的。
Public Enum WorkDays
Sun = 0
Mon
Tue
Wed
Thu
Fri
Sat = Days,Sat –6 ? Days,Sat 的值为 6
Invalid = -1
End Enum
25
声明枚举类型后,就可以声明该枚
举类型的变量,然后使用该变量存储枚
举常数的数值。下列代码使用 WorkDays
类型的变量存储与 WorkDays枚举中的常
数相关联的整数值:
Dim MyDay As WorkDays
MyDay = Sat
If MyDay < Mon Then ?Mon为 1所以 VB显示一
个消息框
MsgBox, Saturday是无效的工作日 !”
End If
26
注意,当在代码窗口中键入示例中的第二
行代码 MyDay=时,VB“自动列出成员”列表
中显示 WorkDays枚举的常数,如图 3-3所示
图 3-3 自动列出成员
27
因为常数 Sun的数值也为 0,所以如
果在示例中的第二行用, 星期日, 替换
,星期六,, VB也将显示消息框:如图
3-4所示 。
MyDay = Sun ?Sun的数值也为 0
图 3-4 显示消息框
28
§ 3.2常量
常量是指在程序运行过程中,它的值
始终保持不变的量。在 VB 中,有两种形
式的常量:直接常量和符号常量。
一,直接常量
? 直接常量分为:字符串常量、数值常量、
布尔常量、日期常量。
? 字符串常量就是用双括号括起来的一串字符。
例如:,A”,,123”,,Computer”。
? 数值常量就是常数,它们是可以:整型常量、
长整型常量、单精度常量、双精度常量、货
币型常量和字节型常量。例如,234,2.89,
1.34E05等为数值常量。
29
§ 3.2常量
? 布尔常量只有两个值,True(真)和 false(假)。
? 日期型常量,用两个,#”符号把日期和时间的值
括起来表示日期常量。例如,#01/29/2002#。
二、符号常量
内部(系统定义)常量
符号常量
符号(用户定义)常量
1.内部常量
系统内部定义的常量是 VB 和控件提供的。这
些常量可以与应用程序的对象、方法和属性一起使
用,在代码中可以直接使用它们。
30
可使用对象浏览器查看 VB内部常量
可以在“对象浏览器”中查看内部常
量。 选择“视图”菜单中的“对象浏览
器”,则打开“对象浏览器”窗口,如图
3-5所示。在下拉列表框中选择 VBA对象
库,然后在“类”列表框中选择“全局”,
右侧的成员列表中可以显示预定义的常量,
窗口底端的文本区域中将显示该常量的功
能。
31
显示该常量的功能
选
定
预
定
义
的
常
量
图 3-4 从, 对象浏览器, 上查看系统内部常量
选定常量的类
32
2,用户定义的符号常量
尽管 VB 内部定义了大量的常量, 但
程序员有时还需要创建自己的符号常量 。
用户定义的常量使用 Const语句来给常量
分配名字, 值和类型 。
(1) 定义常量的格式为:
[Public|Private]Const<常量名 >[As<数据类型 >]
= <表达式 >...
33
2.用户定义的符号常量
例如:
'将圆周率的值用 Pi表示 。 后面计算就可直接用
它 。
Const Pi=3.14159265358979
Area=Pi*Radius*Radius
'用符号常量 NextDate表示 2002年 1月 29日
Const NextDate = #01/29/2002#
34
(2)用户自定义常量的说明:
(a) <常量名 >的命名规则:
首字符必须是英文字母, 其后可以是任
意的字符和下划线的组合最多可有 255个字
符 。 注意在选用常量名时不能使用 VB中的
保留字及小数点 。
(b) <表达式 >由数值常量, 字符串等常量及运
算符组成, 可以包含前面定义过的常量但不
能使用函数调用 。
可以在一行内声明多个常量 。
Const Temp1=100,Temp2=200,String1 =,computer”
35
(2)用户自定义常量的说明:
(c)常量作用范围
用, Private”关键字定义的常量只能在
模块内部使用 。
用, Public”关键字定义的常量可在模
块之间使用 。
36
(3)用户自定义常量的举例
' Pi被说明为模块间公用的常量
Public Const Pi As Double=3.1415926535
' Pi被说明为模块内的常量 。
Private Const Pi As Double =3.1415926535
(4)使用符号常量的好处:
对于程序中经常出现的数值, 应用符号常
量表示它, 不但书写方便, 而且当需要改变该
数值时, 只需改变定义常量的语句值, 而不需
改变每个语句, 提高了编写程序的效率 。
37
§ 3.3变量
一、变量的命名规则
? 变量名的第一个字符必须是英文字母, 后跟任意
字符和下划线, 最多为 255个字符 。
? 变量名不能包含 VB中的保留字和小数点, 因为在
VB中小数点是专门用于引用属性, 方法及用户定
义的类型 。
? 变量名在同一范围内不能重名 。
二、变量的类型的声明
在大多数程序设计语言中,都规定变量在使用前
必须先声明再使用,在 VB 中变量可以不声明直接使
用。这时变量的类型就是 Variant 型,但使用可变类
38
型的变量占用内存空间比较大,而且有些时候
Variant 类型的变量可能无效。因此建议在使用变
量前最好先声明再使用,以便系统为其预留相应的
内存空间。
1.变量声明的一般格式如下
[Dim |Private|Static|Public]<变量名 1>[As<类型 1>][,<变量名
2>[As<类型 2>]]...
2.说明:
( 1) Public语句用来声明公有的模块级变量, 这将使
变量在整个应用程序中有效 。
( 2) Private,Dim和 Static关键字用来声明过程级局
部变量,而用 Static关键字将声明一个静态变量,
该变量在过程结束时,它的值也仍然保留。
39
3,显式声明变量语句 Option Explicit
变量声明可以有效的降低出错率,为
了防止写错变量名引起不必要的麻烦,可
以规定在使用变量前,必须使用声明语句
先进行声明,否则 VB将发出警告
,Variable not defined”(变量未定义)。
要强制显式声明变量,可以在类模块、窗
体模块和标准模块中的声明段中加入 显式
声明变量语句。
Option Explicit
40
为了在代码前面加上强制显式声明语句 。
可以从, 工具, 菜单中执行, 选项, 命令, 在
打开的, 选项, 对话框中单击, 编辑器, 选项
卡, 再选中, 要求变量声明, 选项, 如图 3-5所
示 。 Option Explicit语句的作用范围仅限于语句
所在的模块, 所以, 对每个需要强制显式声明
变量的窗体模块, 类模块和标准模块, 必须将
Option Explicit放在这些模块的声明段中 。 如果
在选项中选择了, 要声明变量,, VB会在后续
的窗体模块, 标准模块和类模块中自动插入
Option Explicit,这一句总是会显示在代码编辑
窗口中的顶部 。 如图 3-6所示 。
41
在选项中设置要求变量声明
图 3.5
选
中
要
求
变
量
声
明
复
印
选
框
42
在代码窗口的声明段自动加上
Option Explicit 语句
图 3.6
43
三、变量的作用范围
变量的作用范围决定变量是在那部分模
块中起作用 。 在一个过程中声明的变量只在
这个过程中才能访问 。 而在整个应用程序的
所有过程中都需要使用某个变量, 则应声明
其为全局变量 。
1.过程内部使用的变量
过程内部使用的变量只在声明它们的
过程中才能识别。这样的变量为局部变量。
用 Dim或者 Static关键字声明它们。
例如,Dim Index As Integer
44
三、变量的作用范围
2.模块内部使用的变量
在模块顶部的声明段使用 Private关键字声
明模块级变量 。
例如,Private intTmp As Integer
3.所有模块使用的公用变量
用 Public关键字声明模块级的变量为
公用变量,公用变量中的值可用于应用程
序中的所有过程。应在模块顶部的声明段
来声明公用(全局)变量。
第四 讲
第三章 Visual Basic编程基础(一)
2
数据类型、常量和变量
VB中的基本语句
数据的输入语句
数据的输出语句本章要点
常用内部函数和表达式
3
§ 3.1数据类型
数据类型是数据的表示和存储形式。
VB共有三种数据类型。
? 基本数据类型
? 用户自定义数据类型
? 枚举类型
Visual Basic定义的基本数据类型如
下页表 3.1所示。
4
Visual Basic定义的基本数据类型
图 3-1
数
值
型
的
数
据
5
一、基本数据类型
不同类型的数据, 所占的存储空间不一
样, 选择使用合适的数据类型, 可以优化程
序代码的编写 。
1,整型数是不带小数点和 E指数的数 。
例如,123,0,-24,19800等 。
整型 (Integer)
整数分为
长整型 (Long)
6
2,实数是带小数点和 E指数的数 。 常用于表示数
值较大或较小的数字 。
例如,12.3,-24.,1.98E04,等 。
单精度浮点数 (Single)
实数分为
双精度浮点数 (Double)
单精度浮点数是用 4个字节存放, 其表示
数值的范围比较小 。 双精度浮点数是用 8个字
节来存放 。 表示数据范围比较大 。
一、基本数据类型
7
3,货币型 (Currency)数据以 8个字节来存放, 它
支持小数点后面 4位和小数点前面 15位, 是一
个精确的定点数据类型, 适用于货币运算 。
4,字节型 ( Byte ) 的数据类型表示 ( 0~255)
无符号的数, 常用于访问二进制文件, 图形
和声音文件等 。 当需要把数据存放成字节且
必须访问各字节时可采用字节类型 。
一、基本数据类型
8
一、基本数据类型
5,字符型 ( String ) 的数据类型只存放文本, 它
是用双引号括起来的一串字符 。 其中的西文字
符按 ASCII编码表示, 占一个字节 。 一个汉字
或全角字符占两个字节 。 不含任何字符的串称
为空串
在 Visual Basic中有两种类型字符串:
(1)变长字符串 最多可包含大约 20亿个字符 。
(2)定长字符串 可以包含 1到大约 64K个字符 。
9
6,布尔型( Boolean )数据。其值只有两
个:真 (True)和假 (False),经常被用来表
示逻辑判断的结果。任何时候只有两种
状态的数据,如,True/False”、
,Yes/No”、,On/Off”等,都可以表示
为 Boolean型,在 Visual Basic中 0表示
False,非 0表示 True。
7,日期型 ( Date ) 数据用来表示日期和时
间, 用 8个字节存放 。 可以表示多种格式
的日期和时间 。 在程序使用时, 日期类
型必需用, #”括起来 。
10
8.对象 ( Object) 型数据用来表示应用程序中
或其他某些应用程序中的对象 。 可以用 Set语
句指定一个被声明为 Object的变量去引用应
用程序所识别的任何实际对象 。 例如:
Dim objDb As Object
Set objDb=OpenDatabase(“d:\Vb\Biblio.mdb”)
9.Variant类型的数据能够表示所有系统定义
的数据类型, 当把它们赋予 Variant型时, 不
必在这些数据的类型间进行转换, Visual
Basic会自动完成任何必要的转换 。 Variant数
据类型还包含三种特定值,Empty,Null、
Error。
11
? Empty值用于确定是否已将一个值赋予所创建的
变量 。 赋值之前, Variant 变 量 具 有 空 值
( Empty) 。 用 IsEmpty函数可以测定一个变量
建立后是否被赋过值 。
? Null值常用于数据库应用程序, 表示求未知或丢
失为空的数据 。 用 IsNull函数可以判断一个
Variant变量的值是否为 Null。
? Error值是指已发生过程中的错误状态 。
Variant是最为灵活的数据类型可以根据不同
的需要进行各种数据类型的转换 。 正是由于它的
灵活性, 又使得它存在着明显的缺点, Variant
数据类型比其它类型的数据占有更多的内存空间 。
12
二、用户自定义数据类型
可以把不同类型的变量组合起来创建用户
定义的类型 。
使用 Type语句创建用户定义类型, 它必须
放在模块的声明部分 。 用户定义类型可用关键
字声明为 Private或 Public,用 Type语句创建
用 户定义类型格式如下:
[Private | Public] Type 数据类型名
数据类型元素名 As 数据类型
数据类型元素名 As 数据类型
……
End Type
13
例如,定义一个地址数据
Type Address
Street As String
ZipCode As String
Phone As String
End Type
这个地址数据里包括三个属性, 街区,
邮政编码和电话, 可把某数据定义成为此
类型:
Dim MyHome As Address
上面语句是将 MyHome定义为地址数据 。
14
要调用或改变, MyHome”的值时,
类似于对对象的属性的操作:
变量名,域名=, ……,
为了简化书写重复的部分,可以用关键字
,With”;例如上面的 MyHome数据:
With MyHome
.Street =“阜成路,
.ZipCode =“100037”
.Phone =“12345678”
End With
15
三、枚举类型
1、枚举的概念
所谓枚举是指将变量的值一一列举出来,变
量的值只限于列举出来的值的范围。
2、声明枚举型的格式如下:
[Private | Public] Enum 类型名称
成员名 [ = 常量表达式 ]
成员名 [ = 常量表达式 ]
……
End Enum
3,格式说明
[ Private] 可选项。表示该枚举类型只在说明它的
模块中有效。
16
三、枚举类型
[ Public ] 可选项。表示该枚举类型是公有
的,其作用范围是整个程序。
[类型名称 ] 必需的,为该枚举类型的名称。
[成员名 ] 必需的,用来指定该枚举类型的
组成元素。
[= 常量表达式 ] 可选项。指明元素的值。
在缺省的情况下,在枚举中的第一个常数
被初始化为 0,其后的常数为比其前面的常
数加 1的数值。
17
【 例 3-1】 下面的枚举 Days中,包含了一个数值
为 0的常数 Sun,数值为 1常数的 Mon,数值为 2
常数 Tue等。
Public Enum Days
Sun
Mon
Tue
Wed
Thu
Fri
Sat
End Enum
18
VB提供了内置的枚举 vbDayOfweek,
包括了与星期的七天相对应的常数 。 如
希望查阅预定义的枚举常数, 在代码窗
口中键入 vbDayOfweek,后跟一个句号,
VB将自动显示该枚举常数的内容 。 如
下页图 3-1所示
19
图 3-1 VB内部常数自动列出成员
20
可以使用赋值语句给枚举中的常数赋
值 。 可以赋值为任何长整数, 包括负数 。
例如, 可能希望常数数值小于 0以便代表出
错条件 。
在以下的枚举数据中,常数 Invalid被
赋值为 -1,而常数 Sun被赋值为 0。因为 Sat
是枚举数据中的第一个元素,所以也被赋
值为 0,Mon的数值为 1(比 Sun的数值大
1),Tue的数值为的数值为 2等。
21
Public Enum WorkDays
Sat
Sun = 0
Mon
Tue
Wed
Thu
Fri
Invalid = -1
End Enum
22
注意, VB将枚举中的常量数值看作长整
数 。 如果将一个浮点数值赋值给一个枚举中
的常数, VB将会使该数值取为最接近的长整
数 。
当引用单个常数时,为了避免模糊引用,
应在常数名称前加上枚举名。下列代码引用
Days和 WorkDays枚举中 Sat常数,并在立即
窗口中显示它们不同的数值如图 3-2所示。
23
即,Days.Sat =6,WorkDays.Sat =0。
Debug.Print, Days.Sat =, & Days,Sat
Debug.Print,WorkDays.Sat =, & _
WorkDays,Sat
图 3-2
24
当向一个枚举中的常数赋值时,也可以使
用另一个枚举中的常数的数值。例如,下述
WorkDays枚举的声明与前述的声明是等同的。
Public Enum WorkDays
Sun = 0
Mon
Tue
Wed
Thu
Fri
Sat = Days,Sat –6 ? Days,Sat 的值为 6
Invalid = -1
End Enum
25
声明枚举类型后,就可以声明该枚
举类型的变量,然后使用该变量存储枚
举常数的数值。下列代码使用 WorkDays
类型的变量存储与 WorkDays枚举中的常
数相关联的整数值:
Dim MyDay As WorkDays
MyDay = Sat
If MyDay < Mon Then ?Mon为 1所以 VB显示一
个消息框
MsgBox, Saturday是无效的工作日 !”
End If
26
注意,当在代码窗口中键入示例中的第二
行代码 MyDay=时,VB“自动列出成员”列表
中显示 WorkDays枚举的常数,如图 3-3所示
图 3-3 自动列出成员
27
因为常数 Sun的数值也为 0,所以如
果在示例中的第二行用, 星期日, 替换
,星期六,, VB也将显示消息框:如图
3-4所示 。
MyDay = Sun ?Sun的数值也为 0
图 3-4 显示消息框
28
§ 3.2常量
常量是指在程序运行过程中,它的值
始终保持不变的量。在 VB 中,有两种形
式的常量:直接常量和符号常量。
一,直接常量
? 直接常量分为:字符串常量、数值常量、
布尔常量、日期常量。
? 字符串常量就是用双括号括起来的一串字符。
例如:,A”,,123”,,Computer”。
? 数值常量就是常数,它们是可以:整型常量、
长整型常量、单精度常量、双精度常量、货
币型常量和字节型常量。例如,234,2.89,
1.34E05等为数值常量。
29
§ 3.2常量
? 布尔常量只有两个值,True(真)和 false(假)。
? 日期型常量,用两个,#”符号把日期和时间的值
括起来表示日期常量。例如,#01/29/2002#。
二、符号常量
内部(系统定义)常量
符号常量
符号(用户定义)常量
1.内部常量
系统内部定义的常量是 VB 和控件提供的。这
些常量可以与应用程序的对象、方法和属性一起使
用,在代码中可以直接使用它们。
30
可使用对象浏览器查看 VB内部常量
可以在“对象浏览器”中查看内部常
量。 选择“视图”菜单中的“对象浏览
器”,则打开“对象浏览器”窗口,如图
3-5所示。在下拉列表框中选择 VBA对象
库,然后在“类”列表框中选择“全局”,
右侧的成员列表中可以显示预定义的常量,
窗口底端的文本区域中将显示该常量的功
能。
31
显示该常量的功能
选
定
预
定
义
的
常
量
图 3-4 从, 对象浏览器, 上查看系统内部常量
选定常量的类
32
2,用户定义的符号常量
尽管 VB 内部定义了大量的常量, 但
程序员有时还需要创建自己的符号常量 。
用户定义的常量使用 Const语句来给常量
分配名字, 值和类型 。
(1) 定义常量的格式为:
[Public|Private]Const<常量名 >[As<数据类型 >]
= <表达式 >...
33
2.用户定义的符号常量
例如:
'将圆周率的值用 Pi表示 。 后面计算就可直接用
它 。
Const Pi=3.14159265358979
Area=Pi*Radius*Radius
'用符号常量 NextDate表示 2002年 1月 29日
Const NextDate = #01/29/2002#
34
(2)用户自定义常量的说明:
(a) <常量名 >的命名规则:
首字符必须是英文字母, 其后可以是任
意的字符和下划线的组合最多可有 255个字
符 。 注意在选用常量名时不能使用 VB中的
保留字及小数点 。
(b) <表达式 >由数值常量, 字符串等常量及运
算符组成, 可以包含前面定义过的常量但不
能使用函数调用 。
可以在一行内声明多个常量 。
Const Temp1=100,Temp2=200,String1 =,computer”
35
(2)用户自定义常量的说明:
(c)常量作用范围
用, Private”关键字定义的常量只能在
模块内部使用 。
用, Public”关键字定义的常量可在模
块之间使用 。
36
(3)用户自定义常量的举例
' Pi被说明为模块间公用的常量
Public Const Pi As Double=3.1415926535
' Pi被说明为模块内的常量 。
Private Const Pi As Double =3.1415926535
(4)使用符号常量的好处:
对于程序中经常出现的数值, 应用符号常
量表示它, 不但书写方便, 而且当需要改变该
数值时, 只需改变定义常量的语句值, 而不需
改变每个语句, 提高了编写程序的效率 。
37
§ 3.3变量
一、变量的命名规则
? 变量名的第一个字符必须是英文字母, 后跟任意
字符和下划线, 最多为 255个字符 。
? 变量名不能包含 VB中的保留字和小数点, 因为在
VB中小数点是专门用于引用属性, 方法及用户定
义的类型 。
? 变量名在同一范围内不能重名 。
二、变量的类型的声明
在大多数程序设计语言中,都规定变量在使用前
必须先声明再使用,在 VB 中变量可以不声明直接使
用。这时变量的类型就是 Variant 型,但使用可变类
38
型的变量占用内存空间比较大,而且有些时候
Variant 类型的变量可能无效。因此建议在使用变
量前最好先声明再使用,以便系统为其预留相应的
内存空间。
1.变量声明的一般格式如下
[Dim |Private|Static|Public]<变量名 1>[As<类型 1>][,<变量名
2>[As<类型 2>]]...
2.说明:
( 1) Public语句用来声明公有的模块级变量, 这将使
变量在整个应用程序中有效 。
( 2) Private,Dim和 Static关键字用来声明过程级局
部变量,而用 Static关键字将声明一个静态变量,
该变量在过程结束时,它的值也仍然保留。
39
3,显式声明变量语句 Option Explicit
变量声明可以有效的降低出错率,为
了防止写错变量名引起不必要的麻烦,可
以规定在使用变量前,必须使用声明语句
先进行声明,否则 VB将发出警告
,Variable not defined”(变量未定义)。
要强制显式声明变量,可以在类模块、窗
体模块和标准模块中的声明段中加入 显式
声明变量语句。
Option Explicit
40
为了在代码前面加上强制显式声明语句 。
可以从, 工具, 菜单中执行, 选项, 命令, 在
打开的, 选项, 对话框中单击, 编辑器, 选项
卡, 再选中, 要求变量声明, 选项, 如图 3-5所
示 。 Option Explicit语句的作用范围仅限于语句
所在的模块, 所以, 对每个需要强制显式声明
变量的窗体模块, 类模块和标准模块, 必须将
Option Explicit放在这些模块的声明段中 。 如果
在选项中选择了, 要声明变量,, VB会在后续
的窗体模块, 标准模块和类模块中自动插入
Option Explicit,这一句总是会显示在代码编辑
窗口中的顶部 。 如图 3-6所示 。
41
在选项中设置要求变量声明
图 3.5
选
中
要
求
变
量
声
明
复
印
选
框
42
在代码窗口的声明段自动加上
Option Explicit 语句
图 3.6
43
三、变量的作用范围
变量的作用范围决定变量是在那部分模
块中起作用 。 在一个过程中声明的变量只在
这个过程中才能访问 。 而在整个应用程序的
所有过程中都需要使用某个变量, 则应声明
其为全局变量 。
1.过程内部使用的变量
过程内部使用的变量只在声明它们的
过程中才能识别。这样的变量为局部变量。
用 Dim或者 Static关键字声明它们。
例如,Dim Index As Integer
44
三、变量的作用范围
2.模块内部使用的变量
在模块顶部的声明段使用 Private关键字声
明模块级变量 。
例如,Private intTmp As Integer
3.所有模块使用的公用变量
用 Public关键字声明模块级的变量为
公用变量,公用变量中的值可用于应用程
序中的所有过程。应在模块顶部的声明段
来声明公用(全局)变量。