2022年如何在Excel中自定义菜单和菜单栏 .pdf
《2022年如何在Excel中自定义菜单和菜单栏 .pdf》由会员分享,可在线阅读,更多相关《2022年如何在Excel中自定义菜单和菜单栏 .pdf(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如何在 Excel中自定义菜单和菜单栏概要本文介绍如何在Microsoft Excel 2000 以及更高版本中自定义菜单和菜单栏。其中包含关于以编程方式在Microsoft Excel 中管理和自定义菜单栏、菜单、命令、子菜单和快捷菜单的分步说明和代码示例。返回目录简介要在 Microsoft Excel 2000、Microsoft Excel 2002 和 Microsoft Office Excel 2003 中执行许多与自定义菜单栏和菜单相关的常见任务,请使用“自定义”对话框。要执行更多高级任务或为自定义程序定制菜单栏和菜单,可能需要创建Microsoft Visual Basic
2、for Applications(VBA)代码。有关如何使用“自定义”对话框的更多信息,请单击“帮助”菜单上的“Microsoft Excel 帮助”,在“O ffice 助手”或“应答向导”中键入自定义菜单栏,然后单击“搜索”以查看主题。本文帮助您学习编写VBA 代码,掌握自定义菜单栏、菜单、菜单项、子菜单和快捷菜单的方法。返回目录更多信息Microsoft 提供的编程示例只用于说明目的,不附带任何明示或默示的保证。这包括但不限于对适销性或特定用途适用性的默示保证。本文假定您熟悉所演示的编程语言和用于创建和调试过程的工具。Microsoft 的支持工程师可以帮助解释某个特定过程的功能,但是他
3、们不会修改这些示例以提供额外的功能或构建过程以满足您的特殊需求。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 26 页 -返回目录本文中的示例本文中的示例在Excel 2000、Excel 2002 和 Excel 2003 中使用VBA 代码来自定义菜单。要使用示例宏,请按照下列步骤操作:1.启动Excel。2.在“工具”菜单上,指向“宏”,然后单击“Visual Basic 编辑器”。3.在“插入”菜单上,单击“模块”。4.键入本文中的一个宏示例,也可使用复制粘贴操作将宏示例复制到模块表中。5.在“运行”菜单上,单击“运行子过程/用户窗体”。6.如果出现“宏”对话框,请单击
4、宏名称,然后单击“运行”。返回目录命令栏在 Microsoft Office 中,所有工具栏、菜单栏和快捷菜单都是被作为“命令栏”这样一种对象以编程方式控制的。下列所有项目在VBA 中皆用CommandBar 对象表示:?菜单栏、工具栏和快捷菜单。?菜单栏和工具栏上的菜单。?菜单、子菜单和快捷菜单上的子菜单。您可以修改任何内置的菜单栏和工具栏,还可以创建和修改用您自己的VBA 代码交付的自定义工具栏、菜单栏和快捷菜单。您可以将程序功能以单个按钮的形式放在工具栏上,或以命令名称组的形式放在菜单上。因为工具栏和菜单都是命令栏,所以可以使用同一类型的控件。在 VBA 和 Microsoft Visu
5、al Basic 中,按钮和菜单项用CommandBarButton对象表示。显示菜单和子菜单的弹出控件用CommandBarPopup 对象表示。在以下示例中,名为“Menu”的控件和名为“Submenu”的控件都是用于显示菜单和子菜单的弹出控件,并且这两个控件是各自的控件集中唯一的CommandBar对象。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 26 页 -在 Microsoft Excel 中,菜单栏和工具栏被视为是同一种可编程对象,即CommandBar 对象。可以使用CommandBar对象中的控件来指代菜单、菜单项、子菜单和快捷菜单。可以在Type 参数中使用
6、一个常量为每个控件指定要用于菜单、子菜单或命令的控件类型。返回目录控件常量下面是Excel 2003 中的各种控件常量的列表,这些常量指定用于特定菜单栏控件的图形控件类型:?MsoControlActiveX*?MsoControlAutoCompleteCombo*?MsoControlButton?MsoControlButtonDropdown?MsoControlButtonPopup?MsoControlComboBox?MsoControlCustom?MsoControlDropdown?MsoControlEdit?MsoControlExpandingGrid?MsoCont
7、rolGauge?MsoControlGenericDropdown?MsoControlGraphicCombo?MsoControlGraphicDropdown?MsoControlGraphicPopup?MsoControlGrid?MsoControlLabel?MsoControlLabelEx*?MsoControlOCXDropDown?MsoControlPane*?MsoControlPopup?MsoControlSpinner*?MsoControlSplitButtonMRUPopup?MsoControlSplitButtonPopup?MsoControlSpl
8、itDropdown名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 26 页 -?MsoControlSplitExpandingGrid?MsoControlWorkPane*表示Microsoft Excel 2000 中的新增项*表示 Microsoft Excel 2002 中的新增项*表示Microsoft Office Excel 2003 中的新增项菜单栏菜单栏是一种命令栏。它是一种可在其中添加菜单、菜单项和子菜单的对象。有关如何在Excel 中管理菜单栏和菜单项的更多信息,请按照下列步骤操作:1.启动Microsoft Visual Basic 编辑器。2.在“帮
9、助”菜单上,单击“Microsoft Visual Basic 帮助”。3.在“Office 助手”框或“应答向导”框中,键入菜单栏,然后单击“搜索”。4.在 Excel 2003 和 Excel 2002 中,单击“添加和管理菜单栏和菜单项”。在Excel 2000 中,单击“关于菜单和工具栏”。可以在运行时修改菜单栏及该菜单栏上的控件。对菜单栏所做的更改可能会影响菜单栏的外观或位置。可对控件进行的更改取决于控件类型。下表列出了最常见的属性和常用于更改控件的状态、操作或内容的方法:属性或方法用途Add添加菜单栏,方法是使用CommandBars 对象集合的Add 方法,然后为Menubar
10、参数指定TRUE 值。Enabled如果 Enabled 属性的值为TRUE,那么用户可以使用Visual Basic 代码使指定的菜单栏可见。如果Enabled 属性的值为FALSE,用户就无法让菜单栏可见。不过,菜单栏将出现在可用命令栏列表中。Protection使您可以通过特定用户操作来保护菜单栏。Position指定新菜单栏相对于程序窗口的位置。菜单栏相对于程序窗口的位置可以是以下MsoBarPosition常量属性之一:msoBarLeft、msoBarTop、msoBarRight、msoBarBottom、msoBarFloating、msoBarPopup(用于创建快捷菜单)或
11、msoBarMenuBar(仅用于Apple Macintosh)。Visible指定控件是可见的,还是隐藏的。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 26 页 -返回命令栏控件的ID 以下代码示例返回活动菜单栏的ID:Sub Id_Control()Dim myId as Object set myId=CommandBars(Worksheet Menu Bar).Controls(Tools)MsgBox myId.Caption&Chr(13)&MyId.Id End Sub 确定活动菜单栏的名称以下代码示例返回活动菜单栏的名称:Sub MenuBars_GetN
12、ame()MsgBox CommandBars.ActiveMenuBar.Name End Sub 保存(内置或自定义菜单栏的)活动状态您可能需要将OriginalMenuBar变量声明为公共变量,这样,子例程就可以在其他子例程(如Auto_Close 子例程)中使用该变量。以这种方式声明和使用该变量会将用户的上一个菜单栏重置为初始状态。以下示例宏重置菜单栏:名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 26 页 -Public OriginalMenuBar as Object Sub MenuBars_Capture()Set OriginalMenuBar=Comman
13、dBars.ActiveMenuBar End Sub创建自定义命令栏以下代码示例创建名为My Command Bar 的自定义命令栏:Sub MenuBar_Create()Application.CommandBars.Add Name:=My command bar End Sub 您还可以通过使用Temporary:=True 参数来创建自定义命令栏。Temporary:=True 参数允许命令栏在您退出 Excel 时自动重置。以下代码使用Temporary:=True 参数创建自定义命令栏:Sub MenuBar_Create()Application.CommandBars.Ad
14、d Name:=My command bar,Temporary:=True End Sub显示自定义命令栏以下示例创建并显示自定义的“My Custom Bar”菜单栏,然后用它替换内置的菜单栏:Sub MenuBar_Show()Dim myNewBar As Object 名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 26 页 -Set myNewBar=CommandBars.Add(Name:=Custom1,Position:=msoBarFloating)You must first enable your custom menu bar before you m
15、ake it visible.Enabling a menu bar adds it to the list of available menu bars on the Customize dialog box.Setting the menubar property to True replaces the built-in menu bar.myNewBar.Enabled=True myNewBar.Visible=True End Sub 删除自定义命令栏以下代码示例删除名为“Custom 1”的自定义菜单栏:Sub MenuBar_Delete()CommandBars(Custom
16、1).Delete End Sub 隐藏命令栏以下代码示例从可用菜单栏列表中删除内置“图表”菜单栏:名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 26 页 -Sub MenuBar_Display()CommandBars(Chart).Enabled=False End Sub显示命令栏以下代码示例从可用菜单栏中添加内置“图表”菜单栏:Sub MenuBar_Display()CommandBars(Chart).Enabled=True End Sub还原内置命令栏还原菜单栏会重置(菜单和菜单项的)默认控件。以下代码示例还原内置“图表”菜单栏:Sub MenuBar_Res
17、tore()CommandBars(Chart).Reset End Sub注意:您只能重置内置菜单栏,不能重置自定义菜单栏。菜单还原菜单栏会重置(菜单和菜单项的)默认控件。以下代码示例还原内置“图表”菜单栏:Sub MenuBar_Restore()CommandBars(Chart).Reset 名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 26 页 -End Sub注意:您只能重置内置菜单栏,不能重置自定义菜单栏。向命令栏添加自定义菜单控件以下代码示例将您通过编程方式添加的菜单名称添加到“工作表”菜单栏中。例如,此代码会将菜单名称“New Menu”添加到“工作表”菜单栏
18、中。注意:您可以根据需要为该菜单指定任何名称。Sub Menu_Create()Dim myMnu As Object Set myMnu=CommandBars(Worksheet menu bar).Controls._ Add(Type:=msoControlPopup,before:=3)With myMnu The&denotes a shortcut key assignment(Alt+M in this case).Caption=New&Menu End With End Sub 禁用命令栏上的菜单控件禁用的菜单控件在命令栏中显示为灰色,并且不可用。以下示例禁用“New Me
19、nu”菜单:名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 26 页 -Sub Menu_Disable()CommandBars(Worksheet menu bar).Controls(New&Menu).Enabled=False End Sub启用命令栏上的菜单控件以下代码示例启用您在“禁用命令栏上的菜单控件”一节中禁用的New Menu 菜单:Sub Menu_Disable()CommandBars(Worksheet menu bar).Controls(New&Menu).Enabled=True End Sub删除命令栏上的菜单控件以下代码示例从“工作表”菜单栏
20、中删除您在“向命令栏添加自定义菜单控件”一节中创建的“New Menu”菜单:Sub Menu_Delete()CommandBars(Worksheet menu bar).Controls(New&Menu).Delete End Sub 名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 26 页 -还原命令栏上的菜单控件以下代码示例还原“工作表”菜单栏上的内置“图表”菜单栏:Sub Menu_Restore()Dim myMnu As Object Set myMnu=CommandBars(Chart)myMnu.Reset End Sub命令可以对命令进行的修改与控件的
21、类型有关。一般来说,按钮要么被启用,要么被隐藏。而编辑框、下拉列表框和组合框较为灵活一些,因为您可以在列表中添加或删除项目。另外,还可以通过查看在列表中选中的项目的值来确定执行的操作。您可以将任何控件的操作更改为内置函数或自定义函数。下表列出了最常见的控件属性和更改控件的状态、操作或内容的方法:属性或方法 用途Add向命令栏添加命令。AddItem向下拉列表框或组合框的下拉列表部分添加项目。Style指定按钮上是显示图标还是显示标题。OnAction指定用户更改控件值时所运行的过程。Visible指定控件是可见的,还是隐藏的。要了解有关Excel 2003 和 Excel 2002 中菜单的更
22、多信息,请按照下列步骤操作:1.启动Visual Basic 脚本编辑器。2.在“帮助”菜单上,单击“Microsoft Visual Basic 帮助”。3.在“搜索帮助”框中,键入菜单,然后按Enter。4.单击“添加和管理菜单栏和菜单项(Office)”。名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 26 页 -向菜单控件添加分隔条以下代码示例在“插入”菜单上的 工作表 命令之前添加分隔条:Sub menuItem_AddSeparator()CommandBars(Worksheet menu bar).Controls(Insert)_ .Controls(Work
23、sheet).BeginGroup=True End Sub注意:要删除分隔条,请将BeginGroup 属性设置为False。在菜单上创建自定义命令控件以下代码示例在“工作表”菜单栏的“工具”菜单上创建名为Custom1 的新命令,然后,当您单击“Custom1”时,它将运行Code_Custom1 宏:Sub menuItem_Create()With CommandBars(Worksheet menu bar).Controls(Tools).Controls.Add(Type:=msoControlButton,Before:=1).Caption=Custom1 .Controls
24、(Custom1).OnAction=Code_Custom1 End With End Sub名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 26 页 -在命令控件旁放置选中标记以下代码示例在Custom1 命令未选中的情况下在其旁边放置一个选中标记;如果Custom1 命令已选中,则将删除该选中标记:Sub menuItem_checkMark()Dim myPopup as Object Set myPopup=CommandBars(Worksheet menu bar).Controls(Tools)If myPopup.Controls(Custom1).State
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年如何在Excel中自定义菜单和菜单栏 2022 如何 Excel 自定义 菜单 菜单栏
限制150内