宏/菜单/工具栏/功能区
VBA自定义菜单和菜单栏(四)
2009-09-07 08:32:29

七、子菜单

当您单击某个命令时,父菜单的一侧会出现子菜单。作为子菜单控件的命令在其名称右边有一个黑色小箭头。

7.1添加子菜单

以下代码示例向“工作表”菜单栏上的“工具”菜单添加名为“NewSub”的新子菜单:

Sub SubMenu_Create()

Dim newSub as Object

   Set newSub = CommandBars("Worksheet menu bar").Controls("工具(&T)")

   With newSub

      .Controls.Add(Type:=msoControlPopup, Before:=1).Caption="NewSub"

   End With

End Sub

7.2向子菜单添加命令

以下代码示例向“NewSub”子菜单添加名为“SubItem1”的新命令,然后,当您单击“SubItem1”时,它将运行 Code_SubItem1 宏:

Sub SubMenu_AddItem()

Dim newSubItem as Object

   Set newSubItem = CommandBars("Worksheet menu bar") _

   .Controls("工具(&T)").Controls("NewSub")

   With newSubItem

      .Controls.Add(Type:=msoControlButton, Before:=1).Caption = "SubItem1"

      .Controls("SubItem1").OnAction = "Code_SubItem1"

   End With

End Sub

7.3禁用子菜单上的命令控件

以下代码示例禁用您在“向子菜单添加命令”一节中创建的 SubItem 命令:

Sub SubMenu_DisableItem()

   CommandBars("Worksheet menu bar").Controls("工具(&T)") _

   .Controls("NewSub").Controls("SubItem1").Enabled = False

End Sub

 

以下代码示例启用同一 SubItem 命令:

Sub SubMenu_DisableItem()

   CommandBars("Worksheet menu bar").Controls("工具(&T)") _

   .Controls("NewSub").Controls("SubItem1").Enabled = True

End Sub

7.4删除子菜单上的命令

以下示例删除您在“向子菜单添加命令”一节中在“NewSub”子菜单上创建的 SubItem1 命令:

Sub SubMenu_DeleteItem()

   CommandBars("Worksheet menu bar").Controls("工具(&T)") _

   .Controls("NewSub").Controls("SubItem1").Delete

End Sub

7.5禁用子菜单控件

以下代码示例禁用您在“添加子菜单”一节中在“工具”菜单上创建的“NewSub”子菜单:

Sub SubMenu_DisableSub()

   CommandBars("Worksheet menu bar").Controls("工具(&T)") _

   .Controls("NewSub").Enabled = False

End Sub

注意:要启用已禁用的控件,请将 Enabled 属性设置为 True

7.6删除子菜单控件

以下代码示例删除您在“添加子菜单”一节中在“工具”菜单上创建的“NewSub”子菜单:

Sub SubMenu_DeleteSub()

   CommandBars("Worksheet menu bar").Controls("工具(&T)") _

   .Controls("NewSub").Delete

End Sub