使用命令栏

优质
小牛编辑
137浏览
2023-12-01

全部显示

一般来说,要为 Visual Basic 应用程序创建或修改命令栏、菜单栏和快捷菜单,可以应用该容器应用程序的自定义功能部件。用容器应用程序的自定义功能部件对工具栏、菜单栏、快捷菜单所作的修改,称为“设计期”修改。有关用容器应用程序作设计期修改的详细信息,请参阅该应用程序的联机帮助。

用 Visual Basic 代码中 Microsoft Office 对象模型的CommandBars 部分可添加和修改工具栏、菜单栏和快捷菜单(及其内部部件)。可书写代码以创建工具栏和菜单栏。实际上,该代码模拟了设计期修改过程。然而,在一些容器应用程序中,可能需要用这种 Visual Basic 代码和自定义接口的组合来设计 Visual Basic 应用程序。以下是一些需用代码和容器应用程序接口组合的地方:

  • 如果容器应用程序没有提供接口来添加或修改工具栏中的编辑框、下拉式列表框或组合框,那么需用 Visual Basic 代码来添加和设计这些控件。
  • 如果容器应用程序提供了创建工具栏的接口,但没有提供创建新的菜单栏的接口,那么就需用 Visual Basic 来创建菜单栏。用 Visual Basic 创建了菜单栏后,就可用容器应用程序接口在该菜单栏上设计菜单了。
  • 如果容器应用程序没有提供在显示自定义接口时显示自定义快捷菜单的方法,那么就需用 Visual Basic 代码修改那些快捷菜单。

通过书写放在 Visual Basic 应用程序中的代码可在运行应用程序时修改工具栏和菜单栏(例如,可书写代码使菜单栏中某条命令在一定的条件下无效,或根据用户的选择在工具栏中添加按钮)。在 Visual Basic 应用程序运行时,由代码引起的改变称为“运行时间”修改。

参阅以下主题,以了解如何用 Visual Basic 代码对工具栏和菜单栏作设计期修改和运行时间修改。

添加和修改工具栏

添加和管理菜单栏和菜单项

添加和显示快捷菜单

注意 任务窗格是一种 CommandBar 对象,可通过如下方式引用:

Dim cbTaskPane As CommandBar
Set cbTaskPane = Application.CommandBars("Task Pane")
MsgBox "The current task pane's title is """ & cbTaskPane.Controls(1).Caption & """"
但是,当许多命令栏方法和属性应用于“任务窗格”时,将表现出与普通 CommandBar 对象不同的行为。例如,DeleteShowPopup 方法没有效果,更改AdaptiveMenuContextNameNameLocalProtection 属性的值也没有效果。