前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA通用代码:自定义右键菜单

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

作者头像
fanjy
发布2022-11-16 10:14:15
1.3K0
发布2022-11-16 10:14:15
举报
文章被收录于专栏:完美Excel

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档