如下圖所示,當鼠標右鍵單擊excel工作表中的單元格時,將會彈出單元格右鍵快捷菜單。
雖然從excel 2007開始 微軟引進了ribbon 功能區來代替excel 常規菜單欄,但是像上圖所示的鼠標右鍵快捷菜單還有很多沒有被替代。
vba 中提供了給菜單增加自定義命令的功能。可以用CommandBar對象獲取指定的菜單命令欄,然後用CommandBar對象的Controls屬性獲取所有的命令按鈕集合,最後用新增集合元素的方法添加新的菜單命令。
比如以下代碼可以在上圖所示的單元格右鍵快捷菜單中添加自定義的菜單命令。當單擊新增的“測試”菜單命令時,將會執行“lyq”子過程。
Visual Basic
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Sub xyf() Dim objCB As CommandBar '獲取單元格右鍵快捷菜單命令欄 Set objCB = Excel.Application.CommandBars("Cell") Dim oCBC As CommandBarControl With objCB .Reset '往單元格右鍵快捷菜單中新增菜單命令 Set oCBC = .Controls.Add(before:=1) With oCBC '指定單擊新增的命令時執行的子過程名稱 .OnAction = "lyq" .Caption = "測試" End With End With End Sub Sub lyq() MsgBox 1 End Sub |
如圖所示