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

第69部分

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

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

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



复制格式工具栏上的“粗体”按钮到标准工具栏上:  
1。  在立即窗口里输入下述三条语句:  
    set myBar = mandBars(3)   
    set myControl = mandBars(4)ntrols(3)   
    myControlpy Bar:=myBar; Before:=1   
2。  切换到Excel应用程序窗口,你应该能看到标准工具栏“新建”按钮的左边有了“粗体”按钮。  
3。  切换到VB编辑器屏幕,并在立即窗口里输入下述语句从标准工具栏上删除该粗体按钮:  
    mandBars(3)ntrols(1)。Delete   
将Copy方法改成Move方法的话,你就可以将粗体按钮从格式工具栏移动到标准工具栏,你可以自己 
试验一下。使用方法Reset,你可以将工具栏恢复为缺省设置。当你练习完移动和复制按钮后,请 
在立即窗口里输入下述语句:  
mandBars(3)。Reset   
mandBars(4)。Reset  
如果某个控件是个组合框(mandBarboBox)的话,那么你就可以使用AddItem方法给它的下 
拉清单添加新项目。如果要从该清单删除项目的话,就可以使用RemoveItem方法。我们花上几分钟 
来在立即窗口里练习这些方法吧。  
1。  激活你之前准备的过程Mybo,运行该过程在格式工具栏上放置一个自定义组合框控件  
2。  在立即窗口里输入下述语句:  
    set myBar = mandBars(4)   
    set myControl = mandBars(4)ntrols(1)   
    myControl。RemoveItem(1)   
    myControl。AddItem 〃Cells〃; 1   

                                          239 

… 页面 256…

3。  切换到Excel窗口,并且查看格式工具栏上该自定义组合框控件里可用的项目  
4。  返回到VB编辑器窗口,在立即窗口里面输入下述语句并且回车,以重新设定格式工具栏:  
    mandBars(4)。Reset   

8。使用菜单  

就像工具栏一样,菜单也是mandBar对象。有两类菜单:内置菜单和快捷菜单。内置菜单出现在 
应用程序窗口的顶端,紧接着在标题栏之下。在Excel 2002里,有两种内置菜单:工作表菜单和图 
表菜单。  
如果当前活动的是工作表时,那么出现的就是工作表菜单(见图12…4),并列出 几个主要的菜单。 
每个主菜单组都和某些特定的任务相关联,可以在工作表或者工作簿上执行。例如,格式菜单包含 
各种选项允许将各种各样的格式应用到工作表。有些菜单选项组合了一些更详细的选项在子菜单里 
 (见图12…5)  

                                                                                            
图12…4 Excel应用软件的工作表菜单栏  

                                                                                         
图12…5 选择右边带三角的菜单选项将展开一个带有更多选项的子菜单  
当用户正在使用图表页或者选择了内嵌于工作表里的图表时,工作表菜单栏就会被图表菜单栏取代 
 (见图12…6)。同一时间应用程序窗口上只能显示一个菜单栏。  

                                                                                                
图12…6 Excel内置的图表菜单栏  
当你在某个对象上单击右键或者按下Shift+F10时,就会出现快捷菜单。Excel 2002 有50个以上的 
快捷菜单。快捷菜单包含一些经常使用的命令,例如,当你在工作表的任何单元格单击右键时,单 
元格快捷菜单就会出现(见图12…7)。当你在工作表标签上单击右键时,就会出现工作表标签的标 
准菜单(见12…8)。  

                                          240 

… 页面 257…

                             
图12…7 当右键单击任何单元格时出现该快捷菜单   

                             
图12…8 当右键单击工作表标签时出现该快捷菜单   
菜单栏和工具栏一样,用同样的对象mandBar代表。使用对象Control指向菜单,菜单选项,子 
菜单或快捷菜单。Control对象的类型由适当的常量决定。使用msoControlPopup指向菜单, 
msoControlButton常量指向菜单选项,而msoBarPopup常量则指向快捷菜单。你将在下一章节里学 
习如何使用这些常量。  

9。菜单编程  

使用VBA,你可以进行一些操作,例如创建新菜单栏,添加新菜单到内置菜单栏,激活内置或者自 
定义菜单栏,删除用户定义菜单栏,重设内置菜单,判断某个菜单栏时内置的或者自定义的,等等。  
1。  在立即窗口里输入下述语句,返回当前活动菜单栏地名称:  
    ?mandBars。ActiveMenuBar。Name   
    当你按下回车,VB就会返回活动菜单栏的名称:工作表菜单栏。  
    菜单栏上的每个菜单都有一个标题,可以通过属性Caption和Id返回或者设置。  
2。  在本章的模块里面输入下述过程,来返回内置菜单栏上格式菜单的ID:  
     Sub Return_ID()   
          Dim myControl As Object   
          Set myControl = mandBars(〃Worksheet menu bar〃)ntrols(〃Format〃)   
          Debug。Print myControl。Caption & 〃 Id is 〃 & myControl。Id   
     End Sub   
     如果你想让上面的过程更灵活一些的话,可以按照下述Set语句,让用户可以返回工作表菜单 
栏上其它菜单的ID:  
     Set myControl = mandBars(〃Worksheet menu bar〃)ntrols (InputBox(〃Enter the menu  
name (Example: Format):〃))   
3。  运行过程Return_Id,然后切换到立即窗口查看其结果  
4。  在立即窗口里输入下述语句,可以创建一个名为Other的自定义菜单,并将它放置在内置工作 
    表菜单栏上:  
    mandBars(〃Worksheet      menu     bar〃)ntrols。      Add(Type:=msoControlPopup;  

                                           241 

… 页面 258…

before:=10)。Caption = 〃&Other〃   
    当你按下回车键并切换回Excel应用程序窗口时,工作表菜单栏将会在“帮助”菜单前显示你 
    的自定义菜单。如果你没有将上面的语句输入在一行的话,它就不会起作用。  
    现在“Other”菜单是空的,下面一步时示范如何添加菜单命令。  
5。  在立即窗口里输入下述语句,给自定义菜单里添加自定义命令(选项):  
    mandBars(〃Worksheet                menu                bar〃)ntrols(〃Other〃)。  
    Controls。Add(Type:=msoControlButton; before:=1) _  
          。Caption = 〃Gridlines〃   
    当你按下回车键并切换到Excel应用程序菜单,然后选择Other,你将看到命令Gridlines。如 
    果你没有将上面的语句输入在一行的话,它就不会起作用。  
    下一步将要求你给你的自定义菜单选项指定一个适当的VBA过程,当用户选择该菜单时就会执 
    行。  
6。  在当前工程代码窗口里输入下述过程打开或者关闭网格线的显示:  
     Sub GridOnOff( )   
          ActiveWindow。DisplayGridlines = Not ActiveWindow。DisplayGridlines   
     End Sub   
7。  在立即窗口里输入下面的代码,将过程GridOnOff指定给你的自定义菜单选项:  
    mandBars(〃Worksheet            menu            bar〃)ntrols(〃Other〃)ntrols  
(〃Gridlines〃)。OnAction = 〃GridOnOff〃   
    当你按下回车,VB就会将过程GridOnOff指定给Gridlines菜单项。如果你没有将上面的语句输 
    入在一行的话,它就不会起作用。  
    当你切换到Excel应用程序窗口并且选择“Other”|“Gridlines”的时候,如果网格线显示被 
    关闭时,VB就会打开网格线显示,反之亦然。  
    将菜单项的属性Enabled设置为False可以临时禁用该菜单项。一个被禁用的菜单项其名称将变 
    为灰色,并且点击它时不会有任何反应。  
8。  在立即窗口里输入下述语句在同一行,可以禁用Other菜单里的Gridlines命令:  
    mandBars(〃Worksheet menu bar〃)ntrols(〃Other〃)ntrols (〃Gridlines〃)。Enabled  
= False   
    当你按下回车,VB就会将Gridlines菜单项禁用。如果你没有将上面的语句输入在一行的话, 
    它就不会起作用。当你切换到Excel应用程序窗口并且选择Other时,Gridlines选项不再可用。  
9。  要激活Other菜单里的Gridlines命令的话,可以在立即窗口里将逻辑值False取代为True:  
    mandBars(〃Worksheet menu bar〃)ntrols(〃Other〃)。 Controls (〃Gridlines〃)。Enabled  
= True   
    注意,内置菜单上的每个具体选项都是和它们相似的命令组织在一起的,组和组之间用一条横 
    线分割开(见图12…9)。使用方法BeginGroup可以在菜单项之间添加这样一条线。  

                                                              
    图12…9 每个菜单用横线分成好几个部分  
10。 在立即窗口里输入下述语句,可以在“窗口”菜单的“隐藏”命令上面添加一条横线:  
    mandBars(〃Worksheet menu bar〃)ntrols(〃Window〃)ntrols (〃Hide〃)。BeginGroup =  

                                          242 

… 页面 259…

True   
    当你按下回车,VB就会在窗口菜单的隐藏命令上面添加一条横线。如果你没有将上面的语句输 
    入在一行的话,它就不会起作用。  
    当你切换到Excel应用程序窗口并且选择窗口,你就会看到隐藏和取消隐藏命令包含在两条横 
    线里了。上面的那条就是你自己添加的。  
    当某个菜单项被选中时,该选项左边就会出现一个复选记号,例如在图12…9里的视图菜单里, 
    编辑栏和状态栏左边的复选记号表明这些选项当前是有效的。  
11。 要显示你的自定义Other菜单里的Gridlines选项被选中的话,可以修改过程GridOnOff,如下 
    所示:  
     Sub GridOnOff()   
         Dim Other As Object   
         Set Other = mandBars(〃Worksheet menu bar〃)ntrols(〃Other〃)   
         ActiveWindow。DisplayGridlines = Not ActiveWindow。DisplayGridlines   
          If ActiveWindow。DisplayGridlines = True Then   
               Otherntrols(〃Gridlines〃)。State = msoButtonDown   
         Else   
               Otherntrols(〃Gridlines〃)。State = msoButtonUp   
         End If   
     End Sub   
     运行该过程,然后切换到Excel窗口,并且选择Other | Gridlines。如果活动工作表的网格 
     线时显示的话,那么它们现在就会被关闭。再次选择Other | Gridlines。  
12。 在立即窗口里输入下述语句,以删除内置工作表菜单栏里的自定义菜单:  
    mandBars(〃Worksheet menu bar〃)ntrols(〃Other〃)。Delete   
    当你删除某个自定义菜单的时候,里面所有的菜单项都会自动被删除。自定义菜单以及其选项 
    一旦被删除,你就不能恢复它们。  

10。创建子菜单  

菜单项在其名称右边包含一个黑色三角的,都会显示一个子菜单,包括一些额外的命令。假设你想 
在工具菜单里添加一个子菜单。  
1。  在立即窗口里输入下述语句,给工具菜单添加一个子菜单:  
    mandBars(〃Worksheet                                                          menu  
    bar〃)ntrols(〃Tools〃)ntrols。Add(Type:=msoControlPopup; Before:=1) _  
      。Caption = 〃My Submenu〃   
    当你按下回车键,上面的指令会在工具菜单(工作表菜单栏)的上面放置一个自定义子菜单, 
    叫做My Submenu。如果你没有将上面的语句输入在一行的话,它就不会起作用。  
2。  在立即窗口里输入下述一行指令,可以在子菜单里添加自定义命令:  
    mandBars(〃Worksheet           menu          bar〃)ntrols(〃Tools〃)ntrols(〃My  
    Submenu〃)ntrols _  
      。Add(Type:=msoControlButton; Before:=1)。Caption = 〃Opti

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

你可能喜欢的