上的“编辑文字”并输入Survey作为其新名称。要退出编辑模式,可以点击按钮之外的任何地
方。
8。 保存你对Chap10。xls做的改变。
198
… 页面 215…
图10…13 Survey按钮将会启动Info Survey窗体。当用户点击窗体上的OK按钮时,窗体数据将会放
置到该工作表里面
25。显示自定义窗体
每个用户窗体都有Show方法,让你可以给用户显示该窗体。在下面的例子里,你将准备DoSurvey
过程。回想前面部分,你已经将该过程指定给了Info Survey工作表的Survey按钮。
1。 在VB编辑器窗口,选择工程CustomForms(Chap10。xls),并且选择“插入”|“模块”
2。 在属性窗口,将新模块的名称改为ShowSurvey
3。 输入下述显示自定义窗体的过程
Sub DoSurvey()
InfoSurvey。Show
End Sub
注意,Show方法前面是窗体对象的名称,正如出现在窗体文件夹里面的那样(InfoSurvey)
4。 保存Chap10。xls的变化
5。 切换到Excel窗口,并点击Survey按钮,窗体Info Survey将出现。
注意,如果你点击Survey按钮后出现错误信息的话,那么你可以没有按前面步骤6那样给该按钮指
定需要的宏。要更正该错误,可以点击确定,单击右键于Survey按钮,并选择快捷菜单上的“指定
宏”,然后点击指定宏对话框里的DoSurvey宏,并点击确定退出。现在,你可以点击Survey按钮显
示窗体了。
6。 通过点击窗体右上角的关闭按钮(x),关闭Info Survey窗体
26。设置 Tab 顺序
用户可以使用鼠标或者Tab键在窗体上移动,因为许多用户倾向于使用键盘在窗体上移动,所以决
定窗体上控件激活的顺序是很重要的。下列步骤示范设置Info Survey窗体上控件的Tab顺序:
1。 在工程浏览器窗口里的窗体文件夹里,双击InfoSurvey窗体
2。 选择“视图”|“Tab键顺序”。Tab键顺序对话框出现了,该对话框按控件添加的顺序显示窗体
InfoSurvey上的所有控件名称。对话框的右边有一些按钮,允许你向上或者向下移动所选的控
件。要移动某个控件的话,可以点击其名称并且点击上移或者下移按钮,直到你想要的位置。
3。 按照图10…14显示的那样重新安排Info Survey窗体上的控件
4。 点击确定,退出Tab键顺序对话框
199
… 页面 216…
5。 返回Excel界面,并且点击按钮Survey
6。 按Tab键向前移动,按Shift+Tab向后移动
7。 关闭InfoSurvey窗体。如果你想要更改控件激活的顺序的话,那么重新打开Tab键顺序对话框,
并作适当的更改。
图10…14 Tab键顺序对话框让你觉得按Tab键时控件激活的顺序
27。了解窗体和控件事件
除了属性和方法之外,每个窗体和控件都有一套预先设计好的事件。事件是指一类操作,例如点击
鼠标、按键、从清单里选择一项或者改变列表框里可用的清单或项目。事件可以由用户或者系统引
发。编写事件过程,可以明确窗体或控件如何对该事件作出反应。
当你设计一个自定义窗体的时候,你应该预想和规划运行(当窗体使用的时候)时能够发生的一些
事件。最常见的事件时点击事件。每当点击一个命令按钮的时候,就会引发某个事件过程对该按钮
的点击事件作出反应。窗体本身可以对20多种事件作出反应,包括Click(点击)、DblClick(双击)、
Activate(激活),Initialize(初始化)和Resize(重置大小)。
表10…2列出了各种窗体控件可以识别的事件。如果某个控件不能识别某个事件,那么表格相应单元
格便显示“N”,否则为空白。花几分钟熟悉一下事件名称吧,例如,看看表格里的AddControl事件,
一眼就可以看出,该事件只对三个对象可用:框架、多页和窗体本身。
n
o
t
n t
n o u
o t B
x t t n
m o x t u d e r o
Event name r x B o u n g a t
B a p t t
o o o x B B i a B u i
o k n e e r l
F l B b l m t P l B e d
r e t B c o g S i g
t i m t o n E
e b x m s e t g a m b l r i a f
s a e o i h p o r o a u c p m e
U L T C L C O T F C T M S S I R
Activate N N N N N N N N N N N N N N N
AddControl N N N N N N N N N N N N N
AfterUpdate N N N N N N N
BeforeDragOver
BeforeDropOrPaste
BeforeUpdate N N N N N N N
Change N N N N N
Click N N N N
DblClick N N
Deactivate N N N N N N N N N N N N N N
DropButtonClick N N N N N N N N N N N N N
Enter N N N
Error
Initialize N N N N N N N N N N N N N N N
Exit N N N
KeyDown N N
KeyPress N N
KeyUp N N
Layout N N N N N N N N N N N N N
MouseDown N N
MouseMove N N
MouseUp N N
QueryClose N N N N N N N N N N N N N N N
RemoveControl N N N N N N N N N N N N N
Resize N N N N N N N N N N N N N N N
Scoll N N N N N N N N N N N N
SpinDown N N N N N N N N N N N N N N N
SpinUp N N N N N N N N N N N N N N N
Terminate N N N N N N N N N N N N N N N
表10…2 窗体和控件事件
你创建的每个窗体都有一个窗体模块用来储存VBA事件过程。你可以通过以下几种方式来进入窗体
模块,编写事件过程或者找到某个控件可识别的事件:
* 双击某个控件
* 在控件上单击右键,并选择快捷菜单上的查看代码
200
… 页面 217…
* 点击工程浏览窗口的查看代码按钮
* 双击用户窗体上任何未用的区域
执行以上任意操作都会导致打开窗体的代码窗口。图10…15显示了通过双击窗体上的命令按钮而激
活的代码窗口。注意,Microsoft Visual Basic标题栏显示的标题:Chap10。xls – 'User