快捷菜單是在用戶右鍵單擊某個對象時出現的浮動命令欄。快捷菜單欄可以包含與命令欄相同的控件類型,而這些控件的作用也和命令欄上控件的作用相同。在大多數程序中,您無法從程序界面創建或修改快捷菜單,因而必須在運行時創建和修改快捷菜單。
要獲取有關Excel 2002和Excel 2003中的快捷菜單的更多信息,請按照下列步驟操作:
1. 啟動 Visual Basic 腳本編輯器。
2. 在“幫助”菜單上,單擊“Microsoft Visual Basic 幫助”。
3. 在“搜索幫助”框中,鍵入快捷方式,然後按 Enter。
4. 單擊“添加和顯示快捷菜單”。
以下代碼示例創建名為“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 有很多快捷菜單欄,其中包含各種菜單。您還可以創建自定義快捷菜單欄和自定義內置菜單欄。
以下代碼示例在“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
以下代碼示例禁用您在“創建快捷菜單上的命令”一節中創建的 Item1 命令:
Sub Shortcut_DisableItem()
Set myBar = CommandBars("myShortcutBar")
myBar.Controls("Item1").Enabled = False
myBar.ShowPopup 200,200
End Sub
注意:要啟用已禁用的項目,請將 Enabled 屬性設置為 True。
以下代碼示例刪除“myShortcutBar”快捷菜單欄上的名為 Item1 的菜單命令:
Sub Shortcut_DeleteItem()
Set myBar = CommandBars("myShortcutBar")
myBar.Controls("Item1").Delete
myBar.ShowPopup 200,200
End Sub
刪除快捷菜單欄將導致刪除所有菜單項。您無法還原已刪除的自定義菜單欄。要還原它,必須重新創建該菜單欄及其所有菜單項和子菜單。
以下代碼示例刪除您在“在快捷菜單欄上創建命令”一節中創建的“myShortCutBar”快捷菜單欄:
Sub Shortcut_DeleteShortCutBar()
CommandBars("MyShortCutBar").Delete
End Sub
以下代碼示例還原工作表“單元格”快捷菜單欄上的默認命令:
Sub Shortcut_RestoreItem()
CommandBars("Cell").Reset
End Sub