Excel-VBA常用技巧-第07章.菜单和工具栏

上传人:go****e 文档编号:136843275 上传时间:2020-07-02 格式:DOC 页数:37 大小:958KB
返回 下载 相关 举报
Excel-VBA常用技巧-第07章.菜单和工具栏_第1页
第1页 / 共37页
Excel-VBA常用技巧-第07章.菜单和工具栏_第2页
第2页 / 共37页
Excel-VBA常用技巧-第07章.菜单和工具栏_第3页
第3页 / 共37页
Excel-VBA常用技巧-第07章.菜单和工具栏_第4页
第4页 / 共37页
Excel-VBA常用技巧-第07章.菜单和工具栏_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《Excel-VBA常用技巧-第07章.菜单和工具栏》由会员分享,可在线阅读,更多相关《Excel-VBA常用技巧-第07章.菜单和工具栏(37页珍藏版)》请在金锄头文库上搜索。

1、VBA常用技巧代码解析 VBA常用技巧目录VBA常用技巧1第7章菜单和工具栏2技巧1在菜单中添加菜单项2技巧2在菜单栏指定位置添加菜单5技巧3屏蔽和删除工作表菜单7技巧4改变系统菜单的操作8技巧5定制自己的系统菜单9技巧6改变菜单按钮图标15技巧7右键快捷菜单增加菜单项16技巧8自定义右键快捷菜单17技巧9使用右键菜单制作数据有效性20技巧10禁用工作表右键菜单22技巧11创建自定义工具栏23技巧12自定义工具栏按钮图标26技巧13自定义工作簿图标27技巧14移除工作表的最小最大化和关闭按钮28技巧15在工具栏上添加下拉列表框29技巧16屏蔽工作表的复制功能31技巧17禁用工具栏的自定义32技

2、巧18屏蔽所有的命令栏35技巧19恢复Excel的命令栏36第7章 菜单和工具栏技巧1 在菜单中添加菜单项在Excel工作表的菜单中可以添加新的菜单项和子菜单,如下面的代码所示。#001 Sub myTools()#002 Dim myTools As CommandBarPopup#003 Dim myCap As Variant#004 Dim myid As Variant#005 Dim i As Byte#006 myCap = Array(基础应用, VBA程序开发, 函数与公式, 图表与图形, 数据透视表)#007 myid = Array(281, 283, 285, 287,

3、 292)#008 With Application.CommandBars(Worksheet menu bar)#009 .Reset#010 Set myTools = .Controls(帮助(&H).Controls.Add(Type:=msoControlPopup, Before:=1)#011 With myTools#012 .Caption = Excel Home 技术论坛#013 .BeginGroup = True#014 For i = 1 To 5#015 With .Controls.Add(Type:=msoControlButton)#016 .Captio

4、n = myCap(i - 1)#017 .FaceId = myid(i - 1)#018 .OnAction = myC#019 End With#020 Next#021 End With#022 End With#023 Set myTools = Nothing#024 End Sub代码解析:myTools过程使用Add方法在Excel工作表菜单栏中的“帮助”菜单中添加一个标题为“Excel Home 技术论坛”的菜单项和5个子菜单。第2行到第5行代码声明变量类型。第6、7行代码使用Array函数创建两个数组用于保存子菜单的名称和图标ID。第9行代码,在添加菜单项前先使用Reset

5、方法重置菜单栏以免重复添加菜单项。Reset方法重置一个内置控件,恢复该控件原来对应的动作,并将各属性恢复成初始状态,语法如下:expression.Reset参数expression是必需的,返回一个命令栏或命令栏控件对象。第10行代码,使用Add方法在Excel工作表菜单栏中的“帮助”菜单中添加菜单项。Add方法应用于CommandBarControls对象时,新建一个CommandBarControl对象并添加到指定命令栏上的控件集合,语法如下:expression.Add(Type, Id, Parameter, Before, Temporary)参数expression是必需的,返

6、回一个CommandBarControls对象,代表命令栏中的所有控件。参数Type是可选的,添加到指定命令栏的控件类型,可以为表格 791所列的MsoControlType常数之一。常数值控件类型msoControlButton1命令按钮msoControlEdit2文本框msoControlDropdown3下拉列表控制框msoControlComboBox4下拉组合控制框msoControlPopup10弹出式控件表格 11MsoControlType常数因为在本例中将添加的是带有子菜单的菜单项,所以将参数Type设置为弹出式控件。参数Id是可选的,标识整数。如果将该参数设置为 1或者忽

7、略,将在命令栏中添加一个空的指定类型的自定义控件。参数Parameter是可选的,对于内置控件,该参数用于容器应用程序运行命令。对于自定义控件,可以使用该参数向Visual Basic过程传递信息,或用其存储控件信息。参数Before是可选的,表示新控件在命令栏上位置的数字。新控件将插入到该位置控件之前。如果忽略该参数,控件将添加到指定命令栏的末端。本例中将Before参数设置为1,菜单项添加到“帮助”菜单的顶端。参数Temporary是可选的。设置为True将使添加的菜单项为临时的,在关闭应用程序时删除。默认值为False。第12行代码,设定新添加菜单项的Caption属性为“Excel H

8、ome 技术论坛”。Caption属性返回或设置命令栏控件的标题。第13行代码,设置新添加菜单项的BeginGroup属性为True,分组显示。第14行到第19行代码,在“Excel Home 技术论坛”菜单项上添加五个子菜单并设置其Caption属性、FaceId属性和OnAction属性。FaceId属性设置出现在菜单标题左侧的图标,以数字表示,一个数字代表一个内置的图标。OnAction属性设置一个VBA的过程名,该过程在用户单击子菜单时运行,本例中设置为下面的过程。#001 Public Sub myC()#002 MsgBox 您选择了: & Application.CommandB

9、ars.ActionControl.Caption#003 End Sub代码解析:myC过程是单击新添加子菜单所运行过程,为了演示方便在这里只使用MsgBox函数显示所其Caption属性。删除新添加的菜单项及子菜单的代码如下所示。#001 Sub DelmyTools()#002 Application.CommandBars(Worksheet menu bar).Reset#003 End Sub代码解析:DelmyTools过程使用Reset方法重置菜单栏,删除添加的菜单项及子菜单。为了在打开工作簿时自动添加菜单项,需要在工作簿的Activate事件中调用myTools过程,如下面的

10、代码所示。#001 Private Sub Workbook_Activate()#002 Call myTools#003 End Sub为了在关闭工作簿时删除新添加的菜单项,还需要在工作簿的Deactivate事件中调用DelmyTools过程,如下面的代码所示。#001 Private Sub Workbook_Deactivate()#002 Call DelmyTools#003 End Sub如果希望这个菜单为所有工作簿使用,那么就应该在工作簿的Open事件中调用myTools过程,在BeforeClose事件中调用DelmyTools过程。运行myTools过程,将在Excel工

11、作表菜单栏中的“帮助”菜单中添加一个名为“Excel Home 技术论坛”的菜单项及五个子菜单,如图 791所示。图 11在“帮助”菜单中添加菜单项及子菜单技巧2 在菜单栏指定位置添加菜单除了可以在工作表菜单中添加菜单项外,还可以在工作表菜单栏的指定位置添加菜单,如下面的代码所示。#001 Sub AddNewMenu()#002 Dim HelpMenu As CommandBarControl#003 Dim NewMenu As CommandBarPopup#004 With Application.CommandBars(Worksheet menu bar)#005 .Reset#

12、006 Set HelpMenu = .FindControl(ID:=.Controls(帮助(&H).ID)#007 If HelpMenu Is Nothing Then#008 Set NewMenu = .Controls.Add(Type:=msoControlPopup)#009 Else#010 Set NewMenu = .Controls.Add(Type:=msoControlPopup, _#011 Before:=HelpMenu.Index)#012 End If#013 With NewMenu#014 .Caption = 统计(&S)#015 With .Co

13、ntrols.Add(Type:=msoControlButton)#016 .Caption = 输入数据(&D)#017 .FaceId = 162#018 .OnAction = #019 End With#020 With .Controls.Add(Type:=msoControlButton)#021 .Caption = 汇总数据(&T)#022 .FaceId = 590#023 .OnAction = #024 End With#025 End With#026 End With#027 Set HelpMenu = Nothing#028 Set NewMenu = Nothing#029 End Sub代码解析:AddNewMenu过程使用Add方法在工作表“帮助”菜单前添加一个标题为“统计”的菜单和两个菜单项。第6行代码,使用FindControl方法在工作表菜单栏中查找“帮助”菜单。应用于CommandBa

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 其它小学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号