ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

求助:代码生成的自定义菜单,完全关闭Excel后就消失,能否常驻。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-1-21 17:03 | 显示全部楼层 |阅读模式
各位,求助。
我用附件中的文件的open方法实现的下图这个菜单,这个文件关闭也可以正常使用。。
QQ图片20200121165458.png
现在问题是,完全退出Excel后,再打开,这个菜单就消失了,请问有什么办法可以保留,一直使用。
加载宏可以实现这个效果,但不想手动设置加载宏。在论坛搜索了用代码生成加载宏的方法,也没有成功,请各位指教。
附件:
Demo_TableTools1.0.zip (15.38 KB, 下载次数: 5)
核心代码如下:
  1. Public Sub AddinInstall()   '加载菜单
  2. Dim Arr, X

  3.     With ThisWorkbook.Worksheets("Mainsetting")
  4.             Arr = .Range("A1").CurrentRegion.Value      '读取原有设置
  5.             If IsArray(Arr) = False Then Exit Sub
  6.     End With
  7.     For X = 2 To UBound(Arr)
  8.         If ExistsMenuBar(Arr(X, 2)) = False Then    '如果菜单不存在就添加
  9.             AddMenuBar Arr(X, 2), Arr(X, 3), Arr(X, 4), Arr(X, 5), Arr(X, 6), Arr(X, 7)     '更新菜单
  10.         End If
  11.     Next
  12. End Sub

  13. '新建菜单
  14. Function AddMenuBar(ByVal myCaption As String, ByVal myTooltipText As String, ByVal myStyle As Byte, _
  15.                  ByVal myOnAction As String, ByVal myFaceid As Integer, ByVal myTag As String)
  16. Dim myMenuBar, newMenu, Ctrl1
  17. Dim myPic
  18.     Set myMenuBar = CommandBars.ActiveMenuBar
  19.     With myMenuBar.Controls.Add(1, , , 1, True)
  20.         
  21.         .Caption = myCaption
  22.         .TooltipText = myTooltipText
  23.         .Style = myStyle
  24.         .OnAction = myOnAction
  25.         If Len(myFaceid) > 0 Then .FaceId = myFaceid
  26.         If Len(myTag) > 0 Then .Tag = myTag
  27.     End With
  28. End Function

  29. '检测
  30. Private Function ExistsMenuBar(ByVal myCaption As String) As Boolean        '检测菜单是否存在
  31. Dim Bar, Bc
  32.     For Each Bar In Application.CommandBars.ActiveMenuBar.Controls
  33.         If Bar.Caption = myCaption Then
  34.              ExistsMenuBar = True
  35.              Exit Function
  36.         End If
  37.     Next
  38. End Function
复制代码









TA的精华主题

TA的得分主题

发表于 2020-1-21 18:02 | 显示全部楼层
用Custom UI Editor For Microsoft Office来做

TA的精华主题

TA的得分主题

发表于 2020-1-21 18:23 | 显示全部楼层
Demo_TableTools1.0.rar (19.66 KB, 下载次数: 6)

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-21 20:36 | 显示全部楼层

我试了一下,这个应该是仅在当前文件显示按钮1和按钮2吧,打开其他Excel文档是没有的。不过仍然感谢。

TA的精华主题

TA的得分主题

发表于 2020-1-22 08:49 | 显示全部楼层
用加载宏不好吗?打开任何EXCEL文件都会出现这个按钮,相当于EXCEL自带的按钮!你代码写在OPEN事件当然只能在打开时才有了,想要集成在EXCEL的工具档那要让微软开发了,
加载宏其实就是微软开放出来自定义的工具栏。

再复杂一点就是封装工具栏,新开一个选项卡加工具按钮列表,其实跟加载宏区别不大。

注:个人见解!


TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-1 09:18 | 显示全部楼层
IVYQQQQQ 发表于 2020-1-22 08:49
用加载宏不好吗?打开任何EXCEL文件都会出现这个按钮,相当于EXCEL自带的按钮!你代码写在OPEN事件当然只能 ...

其实我想要的就是加载宏后的效果,由于要发给其他人使用,所以想用代码自动实现手动加载宏的步骤。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-25 21:39 , Processed in 0.030824 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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