人气 3717

[Excel技巧] EXCEL创建右键自定义菜单 [复制链接]

blaze 2017-7-13 17:12:40
有些时候,我们希望能通过快捷菜单直接调用一些功能。比如右键菜单就能单击右键-选择相应的功能。那么如何自定义右键菜单呢。

1499937353355442.jpg

1499937353355442.jpg

这里我们用的是Excel VBA:使用 CommandBarPopup对象用 Controls(index) 可返回一个 CommandBarPopup对象;此处 index 是该控件的索引号。该控件的Type属性必须是 msoControlPopup、msoControlGraphicPopup、msoControlButtonPopup、msoControlSplitButtonPopup 或 msoControlSplitButtonMRUPopup。
详细VBA代码:这段代码保存在Thisworkbook模块即可。Private Sub Workbook_Open()  '  Function:自定义右键快捷菜单  '  Author:流沙莫小虫   Dim cmp As CommandBarPopup  '定义一个弹出式控件   Application.CommandBars("Cell").Reset  '单元格菜单重置   Set cmp = Application.CommandBars("Cell").Controls.Add(Type:=msoControlPopup, before:=1, temporary:=True)  '  添加右键菜单,增加位置第一个   With cmp       .Caption = "自定义右键菜单"  '菜单命名    '    下面添加子菜单       With .Controls.Add(Type:=msoControlButton, before:=1)           .Caption = "功能1"  '子菜单名称           .FaceId = 39           .OnAction = "function1"  'function1是你自定义的功能名称         End With       With .Controls.Add(Type:=msoControlButton, before:=2)           .Caption = "功能2"           .FaceId = 39           .OnAction = "function2"         End With       With .Controls.Add(Type:=msoControlButton, before:=3)           .Caption = "功能3"           .FaceId = 39           .OnAction = "function3"         End With     End With   Set cmp = Nothing End Sub
PS:.FaceId是EXCEL内置图标,如下图中的红色框内的图标。

1499937461172471.jpg

1499937461172471.jpg
您需要登录后才可以回帖 登录 | 立即注册

QQ|手机版|精益人 ( 沪ICP备19004111号-1 )|网站地图

GMT+8, 2024-12-23 00:46 , Processed in 0.254668 second(s), 23 queries .

Powered by Lean.ren X3.5 Licensed  © 2001-2030 LEAN.REN