VBA通用代码:自定义右键菜单

2022-11-16 10:14:15 浏览数 (1)

标签: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,供有兴趣的朋友参考。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

0 人点赞