《excel_vba_编程教程(完整版)》

下载本书

添加书签

excel_vba_编程教程(完整版)- 第66节


按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
    上的“编辑文字”并输入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
小提示:按 回车 [Enter] 键 返回书目,按 ← 键 返回上一页, 按 → 键 进入下一页。 赞一下 添加书签加入书架