打印本文 打印本文  关闭窗口 关闭窗口  
Excel2003中通过VBA实现自定义菜单和菜单栏(2)
作者:佚名  文章来源:网络  点击数  更新时间:2012-5-28 10:45:42  文章录入:admin  责任编辑:admin

4.1 Add方法应用于CommandBars对象

新建一个命令栏并添加到命令栏集合。返回 CommandBar 对象。

expression.Add ( Name , Position , MenuBar , Temporary )

l        expression必需。该表达式返回一个 CommandBars 对象。

l        NameVariant 类型)可选。新命令栏的名称。如果忽略该参数,则为命令栏指定默认名称(例如:Custom 1)。

l       PositionVariant 类型)可选。新命令栏的位置或类型。可以为下表所列的 MsoBarPosition 常量之一。

常量

说明

msoBarLeftmsoBarTopmsoBarRight msoBarBottom

指定新命令栏的左侧、顶部、右侧和底部坐标

msoBarFloating

指定新命令栏不固定

msoBarPopup

指定新命令栏为快捷菜单

msoBarMenuBar

仅适用于 Macintosh

 

l         MenuBar  (Variant类型)可选。设置为 True 将以新命令栏替换活动菜单栏。默认值为 False

l         Temporary  (Variant类型)可选。设置为 True 将使新命令栏为临时命令栏。临时命令栏在关闭容器应用程序时删除。默认值为 False

4.2返回命令栏控件的 ID

以下代码示例返回活动菜单栏的 ID

Sub Id_Control ()

Dim myId as Object

   Set myId = CommandBars("Worksheet Menu Bar").Controls("工具(&T)")

   MsgBox myId.Caption & Chr(13) & MyId.Id

End Sub

4.3确定活动菜单栏的名称

以下代码示例返回活动菜单栏的名称:

Sub MenuBars_GetName()

   MsgBox CommandBars.ActiveMenuBar.Name

End Sub

4.4保存(内置或自定义菜单栏的)活动状态

您可能需要将 originalMenuBar 变量声明为公共变量,这样,子例程就可以在其他子例程(如 Auto_Close 子例程)中使用该变量。以这种方式声明和使用该变量会将用户的上一个菜单栏重置为初始状态。以下示例宏重置菜单栏:

Public originalMenuBar as Object

Sub MenuBars_Capture()

   Set originalMenuBar = CommandBars.ActiveMenuBar

End Sub

4.5创建自定义命令栏

以下代码示例创建名为 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.Add Name:="My command bar", Temporary:=True

End Sub

4.6显示自定义命令栏

以下示例创建并显示自定义的“My Custom Bar”菜单栏,然后用它替换内置的菜单栏:

Sub MenuBar_Show()

Dim myNewBar As Object

   Set myNewBar = CommandBars.Add(Name:="Custom1", Position:=msoBarFloating)

   '您必须先启用您的自定义菜单栏,然后看见它。

   '使菜单栏添加到自定义对话框列表中的可用菜单栏上。

'设置菜单属性设置为True取代内置的菜单栏。

   myNewBar.Enabled = True

   myNewBar.Visible = True

End Sub

4.7删除自定义命令栏

以下代码示例删除名为“Custom 1”的自定义菜单栏:

Sub MenuBar_Delete()

   CommandBars("Custom1").Delete

End Sub

4.8隐藏命令栏

以下代码示例从可用菜单栏列表中删除内置“图表”菜单栏:

Sub MenuBar_Display()

   CommandBars("Chart").Enabled = False

End Sub

4.9显示命令栏

以下代码示例从可用菜单栏中添加内置“图表”菜单栏:

Sub MenuBar_Display()

   CommandBars("Chart").Enabled = True

End Sub

4.10还原内置命令栏

还原菜单栏会重置(菜单和菜单项的)默认控件。示例代码还原内置“图表”菜单栏:

Sub MenuBar_Restore()

   CommandBars("Chart").Reset

End Sub

注意:您只能重置内置菜单栏,不能重置自定义菜单栏。

打印本文 打印本文  关闭窗口 关闭窗口