标签:VBA,快捷菜单
在《VBA通用代码:在Excel中创建弹出菜单》中,我们给出了一段在工作表中创建弹出菜单的代码,将给代码指定快捷键,这样通过按快捷键可以在工作表调用弹出菜单,从而执行其中的命令。
下面,我们给单元格右键菜单添加自定义命令的代码和方式。
打开VBE,单击菜单“插入——模块”,插入一个标准模块,在其中输入代码:
Sub AddToCellMenu()
Dim ContextMenu As CommandBar
' 首先, 删除该控件以避免重复.
Call DeleteFromCellMenu
' 设置指向单元格菜单的上下文菜单变量.
Set ContextMenu =Application.CommandBars("Cell")
' 在单元格菜单中添加自定义按钮.
With ContextMenu.Controls.Add(Type:=msoControlButton, before:=1)
.OnAction = "'" &ThisWorkbook.Name & "'!" & "CreateDisplayPopUpMenu"
.FaceId = 59
.Caption = "我的菜单"
.Tag = "My_Cell_Control_Tag"
End With
End Sub
Sub DeleteFromCellMenu()
Dim ContextMenu As CommandBar
Dim ctrl As CommandBarControl
' 设置指向单元格菜单的上下文菜单变量.
Set ContextMenu =Application.CommandBars("Cell")
' 删除带有标签: My_Cell_Control_Tag 的自定义控件.
For Each ctrl In ContextMenu.Controls
If ctrl.Tag ="My_Cell_Control_Tag" Then
ctrl.Delete
End If
Next ctrl
End Sub
在VBE中,双击ThisWorkbook模块,打开其代码窗口,在其中输入代码:
Private Sub Workbook_Activate()
Call AddToCellMenu
End Sub
Private Sub Workbook_Deactivate()
Call DeleteFromCellMenu
Call DeletePopUpMenu
End Sub
关闭Excel工作簿。
然后,再重新打开该工作簿。
此时,右键单击任意单元格,可以看到在单元格快捷菜单中增加了一个自定义命令,如下图1所示。
图1
注:本文整理自microsoft.com,供有兴趣的朋友参考。
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。