在EXCEL中,我们的操作都是通过“工具栏、菜单栏、快捷菜”单实现。EXCEL通过菜单给我们提供基本操作功能之外,也为我们提供了扩展自定义功能的接口,即自定义自己的工具栏、菜单栏。
本文着重介绍如何在 Excel 2003版本中通过编程方式自定义菜单和菜单栏方法。其中包含Excel 中管理和自定义菜单栏、菜单、命令、子菜单和快捷菜单,我将通过代码实例分步说明。
与大家分享关于VBA实现菜单栏管理与自定义菜单栏功能的实现。
在 Microsoft Excel 2000以上版本中实现许与自定义菜单栏和菜单相关的常见任务,可以使用“自定义”对话框(见图1.1)。但如果要实现较高级任务或为自定义程序定制菜单栏和菜单,就需要创建 Microsoft Visual Basic for Applications (VBA) 代码。
有关如何使用“自定义”对话框的更多信息,你可以单击“帮助”菜单上的“Microsoft Excel 帮助”,在“Office 助手”或“搜索向导”中键入自定义菜单栏,然后单击“搜索”查看主题。
在 Microsoft Office 中,所有工具栏、菜单栏和快捷菜单都是被作为“命令栏”这样一种对象以编程方式控制的。下列所有项目在 VBA 中皆用 CommandBar 对象表示:
l 菜单栏、工具栏和快捷菜单。
l 菜单栏和工具栏上的菜单。
l 菜单、子菜单和快捷菜单上的子菜单。
您可以修改任何内置的菜单栏和工具栏,还可以创建和修改用您自己的 VBA 代码交付的自定义工具栏、菜单栏和快捷菜单。您可以将程序功能以单个按钮的形式放在工具栏上,或以命令名称组的形式放在菜单上。因为工具栏和菜单都是命令栏,所以可以使用同一类型的控件。
在 VBA 和 Microsoft Visual Basic 中,按钮和菜单项用 CommandBarButton 对象表示。显示菜单和子菜单的弹出控件用 CommandBarPopup 对象表示。在以下示例中,名为“Menu”的控件和名为“Submenu”的控件都是用于显示菜单和子菜单的弹出控件,并且这两个控件是各自的控件集中唯一的 CommandBar 对象。
在 Microsoft Excel 中,菜单栏和工具栏被视为是同一种可编程对象,即 CommandBar 对象。可以使用 CommandBar 对象中的控件来指代菜单、菜单项、子菜单和快捷菜单。可以在 Type 参数中使用一个常量为每个控件指定要用于菜单、子菜单或命令的控件类型。
下面是 Excel 2003 中的各种控件常量的列表,这些常量指定用于特定菜单栏控件的图形控件类型:
• MsoControlActiveX*
• MsoControlAutoCompleteCombo***
• MsoControlButton
• MsoControlButtonDropdown
• MsoControlButtonPopup
• MsoControlComboBox
• MsoControlCustom
• MsoControlDropdown
• MsoControlEdit
• MsoControlExpandingGrid
• MsoControlGauge
• MsoControlGenericDropdown
• MsoControlGraphicCombo
• MsoControlGraphicDropdown
• MsoControlGraphicPopup
• MsoControlGrid
• MsoControlLabel
• MsoControlLabelEx***
• MsoControlOCXDropDown
• MsoControlPane **
• MsoControlPopup
• MsoControlSpinner***
• MsoControlSplitButtonMRUPopup
• MsoControlSplitButtonPopup
• MsoControlSplitDropdown
• MsoControlSplitExpandingGrid
• MsoControlWorkPane**
* 表示 Microsoft Excel 2000 中的新增项
** 表示 Microsoft Excel 2002 中的新增项
*** 表示 Microsoft Office Excel 2003 中的新增项
菜单栏是一种命令栏。它是一种可在其中添加菜单、菜单项和子菜单的对象。
有关如何在 Excel 中管理菜单栏和菜单项的更多信息,请按照下列步骤操作:
1. 启动 Microsoft Visual Basic 编辑器。
2. 在“帮助”菜单上,单击“Microsoft Visual Basic 帮助”。
3. 在“Office 助手”框或“应答向导”框中,键入菜单栏,然后单击“搜索”。
4. 在 Excel 2003 和 Excel 2002 中,单击“添加和管理菜单栏和菜单项”。在 Excel 2000 中,单击“关于菜单和工具栏”。
可以在运行时修改菜单栏及该菜单栏上的控件。对菜单栏所做的更改可能会影响菜单栏的外观或位置。可对控件进行的更改取决于控件类型。下表列出了最常见的属性和常用于更改控件的状态、操作或内容的方法:
属性或方法 |
用途 |
Add |
添加菜单栏,方法是使用 CommandBars 对象集合的 Add 方法,然后为 Menubar 参数指定 TRUE 值。 |
Enabled |
如果 Enabled 属性的值为 TRUE,那么用户可以使用 Visual Basic 代码使指定的菜单栏可见。如果 Enabled 属性的值为 FALSE,用户就无法让菜单栏可见。不过,菜单栏将出现在可用命令栏列表中。 |
Protection |
使您可以通过特定用户操作来保护菜单栏。 |
Position |
指定新菜单栏相对于程序窗口的位置。菜单栏相对于程序窗口的位置可以是以下 MsoBarPosition 常量属性之一:msoBarLeft、msoBarTop、msoBarRight、msoBarBottom、msoBarFloating、msoBarPopup(用于创建快捷菜单)或 msoBarMenuBar(仅用于 Apple Macintosh)。 |
Visible |
定控件是可见的指,还是隐藏的。 |
{$MY_AD_Squar_article_left} |