VBA自定义菜单和菜单栏(六)
十、快捷菜单上的子菜单
可以在快捷菜单栏上创建子菜单。当您单击某个命令控件时,父菜单的一侧会出现子菜单。作为子菜单控件的命令在其名称右边有一个黑色小箭头。
10.1在快捷菜单栏上新建子菜单
以下示例在工作表“单元格”快捷菜单上添加名为“NewSub”的新子菜单:
Sub ShortcutSub_Create()
CommandBars("Cell").Controls.Add(Type:=msoControlPopup, before:=1) _
.Caption = "NewSub"
'显示快捷菜单栏。
' 200, 200指的是屏幕上的位置的像素为X和Y坐标。
CommandBars("Cell").ShowPopup 200, 200
End Sub
注意:由于没有添加任何菜单项,因此该子菜单为空。
10.2在快捷菜单栏的子菜单上创建命令控件
下面的宏向您在“单元格”快捷菜单上创建的子菜单“NewSub”中添加 SubItem1 命令。然后,当您单击“SubItem1”时,它将运行 Code_SubItem1 宏:
Sub ShortcutSub_AddItem()
Dim newSubItem as Object
Set newSubItem = CommandBars("Cell").Controls("NewSub”)
With newSubItem
.Controls.Add(Type:=msoControlButton, before:=1).Caption = "subItem1"
'点击时subItem1 将运行Code_SubItem1宏。
.Controls("subItem1").OnAction = "Code_SubItem1"
End With
'显示快捷菜单栏。
' 200, 200指的是屏幕上的位置的像素为X和Y坐标
CommandBars("Cell").ShowPopup 200, 200
End Sub
10.3禁用快捷菜单上的子菜单项控件
以下代码示例禁用“NewSub”子菜单上的 SubItem1 命令:
Sub ShortcutSub_DisableItem()
CommandBars("Cell").Controls("NewSub") _
.Controls("subItem1").Enabled = False
'显示快捷菜单栏。
' 200, 200指的是屏幕上的位置的像素为X和Y坐标
CommandBars("Cell").ShowPopup 200, 200
End Sub
注意:要启用已禁用的项目,请将 Enabled 属性设置为 True。
10.4删除快捷菜单上的子菜单项控件
以下示例删除“NewSub”子菜单上的 SubItem1 命令:
Sub ShortcutSub_DeleteItem()
CommandBars("Cell").Controls("NewSub").Controls("subItem1").Delete
'显示快捷菜单栏。
' 200, 200指的是屏幕上的位置的像素为X和Y坐标
CommandBars("Cell").ShowPopup 200, 200
End Sub
10.5禁用快捷菜单上的子菜单控件
以下代码示例禁用“单元格”快捷菜单栏上的“NewSub”子菜单:
Sub ShortcutSub_DisableSub()
CommandBars("Cell").Controls("NewSub").Enabled = False
'显示快捷菜单栏。
' 200, 200指的是屏幕上的位置的像素为X和Y坐标
CommandBars("Cell").ShowPopup 200, 200
End Sub
注意:要启用已禁用的项目,请将 Enabled 属性设置为 True。
10.6删除快捷菜单上的子菜单控件
以下代码示例删除您在“单元格”快捷菜单栏上创建的“NewSub”子菜单:
Sub ShortcutSub_DeleteSub()
CommandBars("Cell").Controls("NewSub").Delete
'显示快捷菜单栏。
' 200, 200指的是屏幕上的位置的像素为X和Y坐标
CommandBars("Cell").ShowPopup 200, 200
End Sub
(责任编辑:admin)