excel_vba_编程教程(完整版)-第11部分
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
法基本和给单元格或区域取名的方法相同。选中某个控件;再在位于公式栏上的〃名字〃编辑框输
入控件名字。这样就给控件更改了名字。
3。6 使用用户窗体
如果希望创建专业级的应用程序;并且方便用户输入数据;那么应该使用用户窗体。用户窗
体可以作为程序的对话框和窗口。向用户窗体添加控件基本类似于向工作表添加控件;然而第一
步要创建一个用户窗体。这可以通过 VBA 编辑器实现。具体按以下步骤操作:
1)打开〃HOUR3〃工作簿;选择〃工具〃…〃宏〃…〃VBA 编辑器〃;打开 VBA 编辑器。
2)在 VBA 编辑器中选择工具栏上的〃插入用户窗体〃按钮或者选择〃插入〃菜单;从下拉菜单
中选择〃用户窗体〃
现在;VBA 编辑器中出现一个名为〃USERFORM1〃的窗体;〃控件工具箱〃同时出现;在其中有许
多已经熟悉的控件;另外还有一些新的控件。
这些新的控件是:
A)切换按钮:该控件如果被选中;那么会保持被按下的状态。如果再次单击它就恢复为没有
按下的状态。EXCEL工具栏中有几个这样的按钮;例如:〃全屏显示〃;〃加粗〃;〃下划线〃以及〃窗体〃
工具栏中的〃切换网格〃等。
B)选项卡条(TabStrip):它是包含多个选项卡的控件。通常用来对相关的信息进行组织或分
6
… 页面 23…
Visual BASIC 程序设计网络教学 橄榄树
整 理
类。例如:你也许希望用选项卡条来显示各个地区的销售信息;可以给每个地区设置一个选项卡。
在默认时;选项卡包含两页;分别叫做TAB1和 TAB2;可以添加更多的选项卡。
C)多页:外观类似选项卡条;是包含一页或多页的控件。选项卡条给人相似的外观;而多页控
件的各页包含各自不同的控件;有各自不同的布局。多页的例子很多;例如:〃设置控件格式〃对话
框和〃工具〃菜单中的〃选项〃对话框。以及〃格式〃菜单中的〃单元格。。。〃对话框。
D) 图 像 控 件 : 它 允 许 向 窗 体 上 放 置 图 片 。 图 片 格 式 须
为 :*。bmp;*。cur;*。gif;*。ico;*。jpg;*。wmf。
F)RefEdit:这是工具箱中默认情况下的最后一个控件。它外观象文本框,通过这个控件可
以将用户窗体折叠起来,以便选择单元格区域。还记得在使用 fx〃粘贴函数〃时的情况吗?
通过实践,我们会逐渐掌握每个控件的特性,这的确需要花时间,但不必死记硬背。
在对用户窗体设计得满意时,可以对其进行预览,方法是在 VBA 编辑器中选择该窗体,单
击〃运行〃菜单中的三角符号〃运行子过程/用户窗体〃,三角符号在 VBA 工具栏上也可能看得到,
旁边是一个垂直的等于符号,最右边是个小正方形符号,它们类似于录音机上的按钮。运行窗
体的另一个方法是按 F5键。
小结:学习完本学时后,我们具备了用于程序界面设计的基本知识。我们对控件不在感到
陌生,也明白如何向工作表和窗体添加控件;但控件的内容很多;需要边用边理解。此后,我们将
从界面转移到学习编写代码,并最终将二者融合。让我们准备好学习编程吧!
3。7 疑难解答
问题 1。怎样决定控件的位置?如何选择添加到工作表还是添加到用户窗体?
解答:这完全取决于个人的爱好和应用程序的用户。如果用户对 EXCEL 非常熟悉;那么他们
也许更希望以工作表的方式操作。在这种情况下不妨直接在工作表上创建控件;如果你的用户对
EXCEL 不熟悉或者你需要给用户一个专业的界面感觉;那么应该使用用户窗体。
问题 2。什么情况下该用选项卡条而不是多页控件?
解答:如果每一页具有相同布局;则应选择选项卡条;否则应该选择多页。
本节作业
1。思考:
1)列举两种可以让用户进行多选一的控件。
2)如何将控件与单元格链接起来。
2。判断:
1)只有在 VBA 编辑器中才能添加用户窗体。
2)在 VBA 编辑器中看到的窗体网格线在运行时会自动显示。
3。填空:( )是显示静态文本的控件。
第四课 理解变量和变量的作用
4。1 代码存在的位置:模块
VBA 代码必须存放在某个位置,这个地方就是模块。有两种基本类型的模块:标准模块和
类模块。模块中的每个过程或者是函数过程,或者是子程序概念。本课的最后部分将讨论函数过
程和子程序的区别。
新术语:
模块:它是作为一个单元保存在一起的 VBA 定义和过程的集合。
类模块:VBA 允许你创建自己的对象,对象的定义包含在类模块中。
你的大部分工作集中在标准模块中(简称为模块)当录制宏时如果不存在模块,EXCEL 自
动创建一个。EXCEL 和 VBA 不关心代码存放在哪一个模块中,只要代码存在于打开的工作簿中
即可。
4。2 对模块的概览
过程被定义为 VBA 代码的一个单元,过程中包括一系列用于执行某个任务或是进行某种计
算的语句。工作簿的每个过程都有唯一的名字加以区分。
有两种不同的过程:子程序和函数过程。子程序只执行一个或多个操作,而不返回数值。
当录制完宏查看代码时,所看到的就是子程序。宏只能录制子程序,而不能录制函数过程。一
个子程序的例子如清单 4…1 所示。
程序清单 4…1 子程序的例子
7
… 页面 24…
Visual BASIC 程序设计网络教学 橄榄树
整 理
Sub cmdSmallFont_Click()
With Selection。Font
。Name=〃Arial〃
。FontStyle=〃Regular〃
。Size=16
End With
End sub
上面列出的过程实际上是一个事件过程。通过它的名字,就可以知道这是一个事件过程。
这个过程的名字是由一个对象的名字 CmdSmallFont 和一个事件的名字 Click 组成的,两者之间
用下划线分开。如果还不明白,可以告诉你,CmdSmallFont 是一个命令按钮的名字。也就是说,
当单击这个命令按钮时,就会运行这个事件过程。
函数过程通常情况下称为函数,要返回一个数值。这个数值通常是计算的结果或是测试的
结果,例如 False 或 True。正如前面所说,可以用 VBA 创建自定义函数。实际上可以在工作表
上使用你创建的函数。程序清单 4…2 是一个计算价格的 10%为运费的简单例子。
程序清单 4…2 简单的用户定义函数示例。
Public Function Shipping(Price)
Shipping = Price * 0。1
End Function
请注意,这个函数使用一个参数(Price)。子程序和函数都可以使用参数。不论 Price 的值
是多少,它都将决定运费额。Price 可以是数字和单元格引用。函数返回计算出来的运费,这
个函数可以用在单元格中。
A B
1 Price 100
2 Shipping =shipping(B1)
4。2。1 创建过程
创建第一个过程需要两个基本步骤。首先,需要向工作簿中添加一个模块。接着需要向模
块中添加一个工程。对于创建的每一个应用程序,只需添加一次模块。可以使用多个模块,但
这是不必要的。某些开发者喜欢使用多个模块,以便根据他们的目的或者窗体对过程进行组织。
在本练习中,创建的过程只显示一个消息框。
在本练习中创建的过程只显示一个消息框。在本练习中使用 Msgbox是为了提供一个可见的
例子,虽然我们还没有介绍过 Msgbox 语句,但是在本例中将使用它。要创建该过程,请按如下
步骤进行:
1)打开一个新工作簿。
2)选择〃工具〃…〃宏〃…〃Visual Basic 编辑器〃,打开 VBA编辑器窗口。
3)在‘VBA 编辑器的左面,可以看到〃工程资源管理器〃窗口。在工程资源管理器窗口的
〃Thisworkbook〃上单击鼠标右键,选择〃插入〃…〃模块〃,这样就将一个模块添加到应用程序中了。
(如果你没有看见〃工程资源管理器〃窗口,可以按 Ctrl+R)
4)选择〃插入〃〃过程〃,显示〃添加过程〃对话框。
5)输入〃第一个工程〃作为过程名字。在〃类型〃分组框中,确认选择了〃子程序〃。单击〃确
定〃按钮。这样一个新的过程就添加到模块中了。可以在模块中看到以 Public Sub 第一个过程
()开始,以 End Sub结束的语句结构。
6)在过程中插入光标,输入以下语句并回车:
Msgbox 〃这是我的第一个过程〃
在输入 Msgbox 后,会自动弹出一个消息框告诉你有关这条命令的信息,称之为自动列表技术。
输入完成的过程如下所示:
Public Sub 第一个过程()
Msgbox 〃这是我的第一个过程〃
End Sub
VBA 对子程序和函数有如下的命名规则:
* 名字中可以包含字母数字和下划线。
* 名字中不能包含空格句号惊叹号,也不能包含字符@ & #。
* 名字最多可以包含 255 个字符。
8
… 页面 25…
Visual BASIC 程序设计网络教学 橄榄树
整 理
4。2。2 运行宏
创建这个过程后,可以运行一下。运行一个过程有几种方法:可以直接使用〃运行〃菜单,〃
运行子程序/用户窗体〃工具栏按钮或按下 F5 键。要运行一个过程,可以按照如下步骤:
1)单击〃运行子程序/用户窗体〃工具栏按钮,过程执行并显示一个消息框。
2)单击消息框之中的〃确定〃按钮,关闭该消息框。
4。3 保存对模块所做的改变
要保存新过程;需要保存过程所驻留的工作簿。可以用 VBA 编辑器保存工作簿。具体步骤如
下:
1)选择〃文件〃…〃保存工作簿〃。因为本工作簿还没有保存过;所以要给它命名。
2)输入〃HOUR4〃作为文件名并按回车键;则工作簿和模块与过程都保存下来了。 第四课 理
解变量和变量的作用
Excel Home
4。4 变量
变量是用于临时保存数值的地方。每次应用程序运行时;变量可能包含不同的数值;而在程
序运行时;变量的数值可以改变。
为了说明为什么需要变量;可以按照如下步骤创建一个简单的过程:
1)创建一个名为〃你叫什么名字〃的过程。
2)在过程中输入如下代码:
Inputbox 〃输入你的名字:〃
现在不要担心 inputbox 语句的语法;将在第六学时中了解到有关这条命令的更多信息。
3)按下F5 键运行过程;这时会显示一个输入框;要求输入你的名字。
4)输入你的名字并按〃确定〃按钮;则结束该过程。
你输入的名字到那里去了?如何找到用户在输入框中输入的信息?在这种情况下;需要使用
变量来存储用户输入的结果。
4。4。1 变量的数据类型
使用变量的第一步是了解变量的数据类型。变量的数据类型控制变量允许保存何种类型的
数据。表 4…1 列出了 VBA 支持的数据类型;还列出了各种类型的变量所需要的存储空间和能够存
储的数值范围。
数据类型 存储空间 数值范围
Byte 1 字节 0 … 255
Booleam 2 字节 True 或者False
Integer 2 字节 …32768 … 32767
Long(长整型) 4字节 …2147483648 … 2147483647
Single 4字节 负值范围:…3。402823E38 … …1。401298E…45
正值范围:1。401298E…45 … 3。402823E38
Double