![]() ![]() |
|
Excel2003中通过VBA实现自定义菜单和菜单栏(5) | |
作者:佚名 文章来源:网络 点击数 更新时间:2012-5-28 10:45:42 文章录入:admin 责任编辑:admin | |
|
|
八、快捷菜单栏
快捷菜单是在用户右键单击某个对象时出现的浮动命令栏。快捷菜单栏可以包含与命令栏相同的控件类型,而这些控件的作用也和命令栏上控件的作用相同。在大多数程序中,您无法从程序界面创建或修改快捷菜单,因而必须在运行时创建和修改快捷菜单。 要获取有关Excel 2002和Excel 2003中的快捷菜单的更多信息,请按照下列步骤操作: 1. 启动 Visual Basic 脚本编辑器。 2. 在“帮助”菜单上,单击“Microsoft Visual Basic 帮助”。 3. 在“搜索帮助”框中,键入快捷方式,然后按 Enter。 4. 单击“添加和显示快捷菜单”。 8.1新建快捷菜单栏
以下代码示例创建名为“myShortcutBar”的快捷菜单栏: Sub Shortcut_Create() Dim myShtCtBar as Object Set myShtCtBar = CommandBars.Add(Name:="myShortcutBar", _ Position:=msoBarPopup) ' 这显示快捷菜单栏。 ' 200, 200指的是屏幕上的位置的像素为X和Y坐标. myShtCtBar.ShowPopup 200,200 End Sub 注意:由于没有添加任何控件(菜单项或子菜单),因此快捷菜单栏出现时是空的。 九、快捷菜单
当您右键单击特定的 Excel 对象时会出现快捷菜单栏。Excel 有很多快捷菜单栏,其中包含各种菜单。您还可以创建自定义快捷菜单栏和自定义内置菜单栏。 9.1在快捷菜单栏上创建命令
以下代码示例在“myShortcutBar”快捷菜单栏上创建名为 Item1 的新菜单命令。当您单击“Item1”时,它将运行 Code_Item1 宏: Sub Shortcut_AddItem() Dim myBar as Object Set myBar = CommandBars("myShortcutBar") With myBar .Controls.Add (Type:=msoControlButton, before:=1).Caption = "Item1" .Controls("Item1").OnAction = "Code_Item1" End With myBar.ShowPopup 200,200 End Sub 9.2禁用快捷菜单栏上的命令控件
以下代码示例禁用您在“创建快捷菜单上的命令”一节中创建的 Item1 命令: Sub Shortcut_DisableItem() Set myBar = CommandBars("myShortcutBar") myBar.Controls("Item1").Enabled = False myBar.ShowPopup 200,200 End Sub 注意:要启用已禁用的项目,请将 Enabled 属性设置为 True。 9.3删除快捷菜单栏上的命令
以下代码示例删除“myShortcutBar”快捷菜单栏上的名为 Item1 的菜单命令: Sub Shortcut_DeleteItem() Set myBar = CommandBars("myShortcutBar") myBar.Controls("Item1").Delete myBar.ShowPopup 200,200 End Sub 9.4删除快捷菜单栏
删除快捷菜单栏将导致删除所有菜单项。您无法还原已删除的自定义菜单栏。要还原它,必须重新创建该菜单栏及其所有菜单项和子菜单。 以下代码示例删除您在“在快捷菜单栏上创建命令”一节中创建的“myShortCutBar”快捷菜单栏: Sub Shortcut_DeleteShortCutBar() CommandBars("MyShortCutBar").Delete End Sub 9.5还原内置快捷菜单栏上的命令
以下代码示例还原工作表“单元格”快捷菜单栏上的默认命令: Sub Shortcut_RestoreItem() CommandBars("Cell").Reset End Sub
十、快捷菜单上的子菜单
可以在快捷菜单栏上创建子菜单。当您单击某个命令控件时,父菜单的一侧会出现子菜单。作为子菜单控件的命令在其名称右边有一个黑色小箭头。 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
|
|
![]() ![]() |