靠谱电子书 > 经管其他电子书 > excel_vba_编程教程(完整版) >

第59部分

excel_vba_编程教程(完整版)-第59部分

小说: excel_vba_编程教程(完整版) 字数: 每页4000字

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




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 – 'UserForm1(代 
码)'。窗体模块包含一个“通用”部分,也包含放置于窗体上面的每个控件的部分。通用部分用来 
声明窗体变量或者常量。  
你可以通过点击右上角复合框右边的向下箭头来进入预期的部分。该复合框被称为过程框,它显示 
左手边复合框显示控件可以识别的所有事件过程。已经编写了过程的事件显示为粗体。  

                                                                                   
图10…15 过程框列出了命令按钮控件可用的事件过程  

28。编写 VBA 过程对窗体和控件事件反应  

在用户能够使用自定义窗体完成特殊任务之前,你通常必须编写一些VBA过程。正如前面提及的, 
VB编辑器创建的每个窗体都有一个模块以储存该窗体使用的过程。  
在显示自定义窗体之前,你可以需要设置控件的初始值。编写一个Initialize事件过程,可以给控 
件设置初始值,或者说默认值,每次显示窗体的时候控件都会拥有这些值。  
Initialize事件发生在窗体启动时,但是在它显示在屏幕之前。假设你想要Info Survey窗体显示 
以下初始设置:  
1。 在Main Interest框架里,选择了Hardware按钮  
2。 下面的列表框包含了对应Hardware选项按钮的内容  
3。 puter Type复选框里没有一个复选框是被选中的  
4。 标签Where Used下面复合框显示第一条可用的项目,并且用户不能给该复合框添加项目  
5。 在旋转按钮旁边的文字框显示初始值(0)  
6。  图像控件显示与Hardware或Software选项按钮相关的图片  

29。编写过程来初始化窗体  

1。 在工程浏览器窗口,双击InfoSurvey窗体  
2。 双击窗体背景,打开活动窗体的代码窗口。  
    当你双击窗体或控件的时候,代码窗口会自动打开并且该被点击的窗体或者控件的Click事件就 
会出现以编辑。  
    在过程定义(图10…15)时,VB自动在关键字Sub之前添加Private。私有过程只能从当前窗体模 
    块里调用,换句话说,在当前工程的其它模块里的过程不能调用该私有过程。在代码窗口的顶 
    端,有两个复合框,左边的复合框显示所有的窗体对象;右边的复合框则显示所选控件能够识 
    别的所有事件。  
3。 点击过程框的向下箭头,并且选择Initialize事件,VB将显示UserForm_Initialize过程在代码 
                                          201 

… 页面 218…

    窗口:  
   Private Sub UserForm_Initialize()   
   End Sub   
4。 在关键字Private Sub和End Sub之间输入窗体的初始设置,完整的UserForm_Initialize过程如 
   下所示:  
   Private Sub UserForm_Initialize()   
         'select the Hardware option 选择Hardware选项  
         optHard。Value = True   
         'turn off the Software option and all the check boxes 关闭Software选项和所有 
         复选框  
         optSoft。Value = False   
         chkIBM。Value = False   
         chkNote。Value = False   
         chkMac。Value = False   
         'display a zero in the text box 文字框显示0  
         txtPercent。Value = 0   
         'call the procedure to populate the list box with   
         'hardware options 调用过程用硬件选项来填充列表框  
         Call ListHardware   
         'populate the bo box 添加复合框项目  
         With Me。cboxWhereUsed   
              。AddItem 〃home〃   
              。AddItem 〃work〃   
              。AddItem 〃school〃   
              。AddItem 〃work/home〃   
              。AddItem 〃home/school〃   
              。AddItem 〃work/home/school”   
         End With   

返回目录 上一页 下一页 回到顶部 0 0

你可能喜欢的