ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 10341|回复: 27

[分享] (2003版)右键三级菜单

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-5-15 21:40 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:UI界面定制
  1. Sub 右键三级菜单()
  2. On Error Resume Next    '预防下面的删除菜单出错(当没有建立菜单的时候,没有菜单可删除就会出错)
  3. Application.CommandBars("cell").Controls("我的右键").Delete '删除右键菜单,防止重复建立
  4. '************************添加一级菜单
  5. With Application.CommandBars("cell").Controls.Add(Type:=msoControlPopup, before:=1)
  6.     .Caption = "我的右键"
  7.         With .Controls.Add(Type:=msoControlPopup)
  8.             .Caption = "第一个一级菜单"
  9. '                    添加二级菜单第一个快捷菜单项
  10.                     With .Controls.Add(Type:=msoControlButton)
  11.                         .Caption = "二级菜单1"  '标题
  12.                         .FaceId = 71           '图标
  13.                         .OnAction = "二级菜单1"  '指定宏(或者说关联宏
  14.                     End With
  15. '                    添加二级菜单第二个快捷菜单项
  16.                     With .Controls.Add(Type:=msoControlButton)
  17.                         .Caption = "二级菜单2"
  18.                         .FaceId = 72
  19.                         .OnAction = "二级菜单2"
  20.                     End With
  21.         End With
  22. '        添加一级菜单2
  23.         With .Controls.Add(Type:=msoControlButton)
  24.             .Caption = "第二个一级菜单"
  25.             .FaceId = 80
  26.             .OnAction = "第二个一级菜单"
  27.             .BeginGroup = True
  28.         End With
  29. '        添加一级菜单3
  30.         With .Controls.Add(Type:=msoControlButton)
  31.             .Caption = "第三个一级菜单"
  32.             .FaceId = 81
  33.             .OnAction = "第三个一级菜单"
  34.         End With
  35. '************************************
  36. '        添加一级菜单4
  37.         With .Controls.Add(Type:=msoControlPopup)
  38.             .Caption = "第四个一级菜单"
  39. '                    第一个快捷菜单项
  40.                     With .Controls.Add(Type:=msoControlButton)
  41.                         .Caption = "二级菜单3"
  42.                         .FaceId = 73
  43.                         .OnAction = "二级菜单3"
  44.                     End With
  45.                     '添加第二个快捷菜单项
  46.                     With .Controls.Add(Type:=msoControlButton)
  47.                         .Caption = "二级菜单4"
  48.                         .FaceId = 74
  49.                         .OnAction = "二级菜单4"
  50.                     End With
  51.         End With
  52. '************************************
  53. '        添加一级菜单5
  54.         With .Controls.Add(Type:=msoControlPopup)
  55.             .Caption = "第五个一级菜单"
  56. '                                第一个快捷菜单项
  57.                     With .Controls.Add(Type:=msoControlButton)
  58.                         .Caption = "二级菜单5"
  59.                         .FaceId = 75
  60.                         .OnAction = "二级菜单5"
  61.                     End With
  62. '                    添加第二个快捷菜单项
  63.                     With .Controls.Add(Type:=msoControlPopup)
  64.                         .Caption = "二级菜单6"
  65. '                            添加三级菜单1
  66.                             With .Controls.Add(Type:=msoControlButton)
  67.                                 .Caption = "三级菜单1"
  68.                                 .FaceId = 76
  69.                                 .OnAction = "三级菜单1"
  70.                             End With
  71.                             '添加三级菜单2
  72.                             With .Controls.Add(Type:=msoControlButton)
  73.                                 .Caption = "三级菜单2"
  74.                                 .FaceId = 77
  75.                                 .OnAction = "三级菜单2"
  76.                             End With
  77.                     End With
  78.         End With
  79.     End With
  80. End Sub

  81. Sub 二级菜单1()
  82.     MsgBox "你按下了:二级菜单1"
  83. End Sub

  84. Sub 二级菜单2()
  85.     MsgBox "你按下了:二级菜单2"
  86. End Sub

  87. Sub 二级菜单3()
  88.     MsgBox "你按下了:二级菜单3"
  89. End Sub

  90. Sub 二级菜单4()
  91.     MsgBox "你按下了:二级菜单4"
  92. End Sub

  93. Sub 二级菜单5()
  94.     MsgBox "你按下了:二级菜单5"
  95. End Sub

  96. Sub 二级菜单6()
  97.     MsgBox "你按下了:二级菜单6"
  98. End Sub

  99. Sub 第二个一级菜单()
  100. MsgBox "你按下了:第二个一级菜单"
  101. End Sub

  102. Sub 第三个一级菜单()
  103. MsgBox "你按下了:第三个一级菜单"
  104. End Sub

  105. Sub 三级菜单1()
  106.     MsgBox "你按下了:三级菜单1"
  107. End Sub

  108. Sub 三级菜单2()
  109.     MsgBox "你按下了:三级菜单2"
  110. End Sub


  111. Sub DeleteTest() '删除右键菜单
  112.     On Error Resume Next
  113.     Application.CommandBars("cell").Controls("我的右键").Delete
  114. End Sub



  115. Sub 恢复右键()
  116.     Application.CommandBars("cell").Reset
  117. End Sub
复制代码

右键三级菜单.rar

9.49 KB, 下载次数: 595

点评

知识树内容索引:如果使用类模块就更好了  发表于 2013-10-10 00:38

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-15 21:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
(2003版)菜单工具栏
  1. Sub 工具栏三级菜单()
  2. On Error Resume Next    '预防下面的删除菜单出错(当没有建立菜单的时候,没有菜单可删除就会出错)
  3. Application.CommandBars(1).Controls("我的菜单").Delete '删除菜单,防止重复建立
  4. '************************添加一级菜单
  5. With Application.CommandBars(1).Controls.Add(Type:=msoControlPopup, before:=1)
  6.     .Caption = "我的菜单"
  7.         With .Controls.Add(Type:=msoControlPopup)
  8.             .Caption = "第一个一级菜单"
  9. '                    添加二级菜单第一个快捷菜单项
  10.                     With .Controls.Add(Type:=msoControlButton)
  11.                         .Caption = "二级菜单1"  '标题
  12.                         .FaceId = 71           '图标
  13.                         .OnAction = "二级菜单1"  '指定宏(或者说关联宏
  14.                     End With
  15. '                    添加二级菜单第二个快捷菜单项
  16.                     With .Controls.Add(Type:=msoControlButton)
  17.                         .Caption = "二级菜单2"
  18.                         .FaceId = 72
  19.                         .OnAction = "二级菜单2"
  20.                     End With
  21.         End With
  22. '        添加一级菜单2
  23.         With .Controls.Add(Type:=msoControlButton)
  24.             .Caption = "第二个一级菜单"
  25.             .FaceId = 80
  26.             .OnAction = "第二个一级菜单"
  27.             .BeginGroup = True
  28.         End With
  29. '        添加一级菜单3
  30.         With .Controls.Add(Type:=msoControlButton)
  31.             .Caption = "第三个一级菜单"
  32.             .FaceId = 81
  33.             .OnAction = "第三个一级菜单"
  34.         End With
  35. '************************************
  36. '        添加一级菜单4
  37.         With .Controls.Add(Type:=msoControlPopup)
  38.             .Caption = "第四个一级菜单"
  39. '                    第一个快捷菜单项
  40.                     With .Controls.Add(Type:=msoControlButton)
  41.                         .Caption = "二级菜单3"
  42.                         .FaceId = 73
  43.                         .OnAction = "二级菜单3"
  44.                     End With
  45.                     '添加第二个快捷菜单项
  46.                     With .Controls.Add(Type:=msoControlButton)
  47.                         .Caption = "二级菜单4"
  48.                         .FaceId = 74
  49.                         .OnAction = "二级菜单4"
  50.                     End With
  51.         End With
  52. '************************************
  53. '        添加一级菜单5
  54.         With .Controls.Add(Type:=msoControlPopup)
  55.             .Caption = "第五个一级菜单"
  56. '                                第一个快捷菜单项
  57.                     With .Controls.Add(Type:=msoControlButton)
  58.                         .Caption = "二级菜单5"
  59.                         .FaceId = 75
  60.                         .OnAction = "二级菜单5"
  61.                     End With
  62. '                    添加第二个快捷菜单项
  63.                     With .Controls.Add(Type:=msoControlPopup)
  64.                         .Caption = "二级菜单6"
  65. '                            添加三级菜单1
  66.                             With .Controls.Add(Type:=msoControlButton)
  67.                                 .Caption = "三级菜单1"
  68.                                 .FaceId = 76
  69.                                 .OnAction = "三级菜单1"
  70.                             End With
  71.                             '添加三级菜单2
  72.                             With .Controls.Add(Type:=msoControlButton)
  73.                                 .Caption = "三级菜单2"
  74.                                 .FaceId = 77
  75.                                 .OnAction = "三级菜单2"
  76.                             End With
  77.                     End With
  78.         End With
  79.     End With
  80. End Sub

  81. Sub 二级菜单1()
  82.     MsgBox "你按下了:二级菜单1"
  83. End Sub

  84. Sub 二级菜单2()
  85.     MsgBox "你按下了:二级菜单2"
  86. End Sub

  87. Sub 二级菜单3()
  88.     MsgBox "你按下了:二级菜单3"
  89. End Sub

  90. Sub 二级菜单4()
  91.     MsgBox "你按下了:二级菜单4"
  92. End Sub

  93. Sub 二级菜单5()
  94.     MsgBox "你按下了:二级菜单5"
  95. End Sub

  96. Sub 二级菜单6()
  97.     MsgBox "你按下了:二级菜单6"
  98. End Sub

  99. Sub 第二个一级菜单()
  100. MsgBox "你按下了:第二个一级菜单"
  101. End Sub

  102. Sub 第三个一级菜单()
  103. MsgBox "你按下了:第三个一级菜单"
  104. End Sub

  105. Sub 三级菜单1()
  106.     MsgBox "你按下了:三级菜单1"
  107. End Sub

  108. Sub 三级菜单2()
  109.     MsgBox "你按下了:三级菜单2"
  110. End Sub


  111. Sub DeleteTest() '删除菜单工具栏
  112.     On Error Resume Next
  113.     Application.CommandBars(1).Controls("我的菜单").Delete
  114. End Sub



  115. Sub 恢复右键()
  116.     Application.CommandBars("cell").Reset
  117. End Sub


复制代码

工具栏三级菜单.rar

9.77 KB, 下载次数: 299

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-15 21:55 | 显示全部楼层
打造属于自己的右键
  1. '把以下内容复制到相应的工作表中去

  2. Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
  3. '鼠标右键时执行的右键菜单
  4.     Application.CommandBars("test").ShowPopup
  5.     Cancel = True
  6. End Sub
复制代码
插入一个模块输入如下代码:
  1. Sub 打造属于自己的右键()
  2.     On Error Resume Next
  3.     Application.CommandBars("test").Delete '删除快捷菜单
  4.     '重新添加快捷菜单
  5.     With Application.CommandBars.Add(Name:="test", Position:=msoBarPopup)
  6. '************************************
  7.         '添加一级菜单1
  8.         With .Controls.Add(Type:=msoControlPopup)
  9.             .Caption = "第一个一级菜单"
  10. '                    添加二级菜单第一个快捷菜单项
  11.                     With .Controls.Add(Type:=msoControlButton)
  12.                         .Caption = "二级菜单1"  '标题
  13.                         .FaceId = 71           '图标
  14.                         .OnAction = "二级菜单1"  '指定宏(或者说关联宏
  15.                     End With
  16. '                    添加二级菜单第二个快捷菜单项
  17.                     With .Controls.Add(Type:=msoControlButton)
  18.                         .Caption = "二级菜单2"
  19.                         .FaceId = 72
  20.                         .OnAction = "二级菜单2"
  21.                     End With
  22.         End With
  23. '        添加一级菜单2
  24.         With .Controls.Add(Type:=msoControlButton)
  25.             .Caption = "第二个一级菜单"
  26.             .FaceId = 80
  27.             .OnAction = "第二个一级菜单"
  28.             .BeginGroup = True
  29.         End With
  30. '        添加一级菜单3
  31.         With .Controls.Add(Type:=msoControlButton)
  32.             .Caption = "第三个一级菜单"
  33.             .FaceId = 81
  34.             .OnAction = "第三个一级菜单"
  35.         End With
  36. '************************************
  37. '        添加一级菜单4
  38.         With .Controls.Add(Type:=msoControlPopup)
  39.             .Caption = "第四个一级菜单"
  40. '                    第一个快捷菜单项
  41.                     With .Controls.Add(Type:=msoControlButton)
  42.                         .Caption = "二级菜单3"
  43.                         .FaceId = 73
  44.                         .OnAction = "二级菜单3"
  45.                     End With
  46.                     '添加第二个快捷菜单项
  47.                     With .Controls.Add(Type:=msoControlButton)
  48.                         .Caption = "二级菜单4"
  49.                         .FaceId = 74
  50.                         .OnAction = "二级菜单4"
  51.                     End With
  52.         End With
  53. '************************************
  54. '        添加一级菜单5
  55.         With .Controls.Add(Type:=msoControlPopup)
  56.             .Caption = "第五个一级菜单"
  57. '                                第一个快捷菜单项
  58.                     With .Controls.Add(Type:=msoControlButton)
  59.                         .Caption = "二级菜单5"
  60.                         .FaceId = 75
  61.                         .OnAction = "二级菜单5"
  62.                     End With
  63. '                    添加第二个快捷菜单项
  64.                     With .Controls.Add(Type:=msoControlPopup)
  65.                         .Caption = "二级菜单6"
  66. '                            添加三级菜单1
  67.                             With .Controls.Add(Type:=msoControlButton)
  68.                                 .Caption = "三级菜单1"
  69.                                 .FaceId = 76
  70.                                 .OnAction = "三级菜单1"
  71.                             End With
  72.                             '添加三级菜单2
  73.                             With .Controls.Add(Type:=msoControlButton)
  74.                                 .Caption = "三级菜单2"
  75.                                 .FaceId = 77
  76.                                 .OnAction = "三级菜单2"
  77.                             End With
  78.                     End With
  79.         End With
  80.     End With
  81. End Sub

  82. Sub 二级菜单1()
  83.     MsgBox "你按下了:二级菜单1"
  84. End Sub

  85. Sub 二级菜单2()
  86.     MsgBox "你按下了:二级菜单2"
  87. End Sub

  88. Sub 二级菜单3()
  89.     MsgBox "你按下了:二级菜单3"
  90. End Sub

  91. Sub 二级菜单4()
  92.     MsgBox "你按下了:二级菜单4"
  93. End Sub

  94. Sub 二级菜单5()
  95.     MsgBox "你按下了:二级菜单5"
  96. End Sub

  97. Sub 二级菜单6()
  98.     MsgBox "你按下了:二级菜单6"
  99. End Sub

  100. Sub 第二个一级菜单()
  101. MsgBox "你按下了:第二个一级菜单"
  102. End Sub

  103. Sub 第三个一级菜单()
  104. MsgBox "你按下了:第三个一级菜单"
  105. End Sub

  106. Sub 三级菜单1()
  107.     MsgBox "你按下了:三级菜单1"
  108. End Sub

  109. Sub 三级菜单2()
  110.     MsgBox "你按下了:三级菜单2"
  111. End Sub
复制代码

打造属于自己的右键.rar

8.18 KB, 下载次数: 314

TA的精华主题

TA的得分主题

发表于 2011-5-15 21:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 2楼 335081548 的帖子

怎么用的啊?有什么用的?

TA的精华主题

TA的得分主题

发表于 2011-5-15 22:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

回复 3楼 335081548 的帖子

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
'鼠标右键时执行的右键菜单
    Application.CommandBars("test").ShowPopup
    Cancel = True
End Sub

这句出现错误

TA的精华主题

TA的得分主题

发表于 2011-5-15 22:03 | 显示全部楼层
楼主 是做了个位置。
等大家 把具体的功能代码 嵌进去?

TA的精华主题

TA的得分主题

发表于 2011-5-15 22:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
楼主的分享精神可贵,方便会员学习,送上鲜花5束,如果再补充一些代码说明就完美了!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-15 22:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 dhf104109 于 2011-5-15 22:01 发表
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
'鼠标右键时执行的右键菜单
    Application.CommandBars("test").ShowPopup
    Cancel = True
End Sub

这句出现错误

这个是Excel装了其他插件会引起的。例如:OfficeTab (多标签插件)也会引起的

换一种思路也可以,参照:
http://club.excelhome.net/viewth ... p;page=1#pid4882443
禁用EXCEL自带的右键菜单而改用自已右键菜单

[ 本帖最后由 335081548 于 2011-5-15 22:59 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-15 22:48 | 显示全部楼层
原帖由 佛山小老鼠 于 2011-5-15 22:19 发表
楼主的分享精神可贵,方便会员学习,送上鲜花5束,如果再补充一些代码说明就完美了!!!

都是跟着老师(你)学的

TA的精华主题

TA的得分主题

发表于 2011-5-15 23:32 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-2 10:10 , Processed in 0.045960 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表