ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 关于vba word中的 Document_Open()和Document_Close()的用法问题???

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-2-2 00:01 | 显示全部楼层 |阅读模式

我想做一个菜单栏,打开时创建菜单,关闭时删除菜单。


用的是在打开文档是,执行Document_Open()
如下:
Private Sub Document_Open()
MsgBox "open"
'Sub test()
Set myM = CommandBars.ActiveMenuBar
Set MenuBars = myM.Controls.Add(Type:=msoControlPopup, Temporary:=True)
' Set MenuBars = myM.Controls.Add(Name:="mBar", Position:=msoBarRight, Temporary:=True)
MenuBars.Caption = "理正报告助手"
'MenuBars.Delete

Set ss = MenuBars.Controls.Add(Temporary:=True) '(Type:=msoControlButton)
With ss
.Caption = "快速生成报告"
.OnAction = "tt"
End With

End Sub


当关闭文档时,执行Document_Close()


Private Sub Document_Close()
On Error Resume Next
    CommandBars.ActiveMenuBar.Controls("理正报告助手").Delete
    MsgBox "exit"
End Sub



为什么,我的文档变成了这个样子


发表帖子 - Word - ExcelHome技术论坛 -.png


好像, CommandBars.ActiveMenuBar.Controls("理正报告助手").Delete不执行??????









TA的精华主题

TA的得分主题

 楼主| 发表于 2015-2-2 00:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谁告诉我,怎么编辑贴子。

TA的精华主题

TA的得分主题

发表于 2015-2-3 11:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
你的用法不对,CommandBars.ActiveMenuBar并不能指定具体的CommandBar,给你个例子。虽然是Excel加载宏用的,但原理相同。
  1. Const sMT = "超链接处理"

  2. '加载时生成工具栏
  3. Private Sub Workbook_AddinInstall()
  4.     Dim cb As CommandBar, bFound As Boolean
  5.    
  6.     bFound = False
  7.    
  8.     For Each cb In Application.CommandBars
  9.         If cb.Name = sMT Then
  10.             bFound = True
  11.             Exit For
  12.         End If
  13.     Next
  14.    
  15.     If bFound Then Exit Sub
  16.    
  17.     Application.CommandBars.Add sMT
  18.    
  19.     With Application.CommandBars(sMT)
  20.         .Visible = True
  21.         With .Controls.Add(msoControlButton)
  22.             .Caption = sMT
  23.             .OnAction = "CheckHpLink"
  24.             .Style = 3
  25.             .FaceId = 370
  26.         End With
  27.         
  28.     End With
  29. End Sub


  30. '卸载时删除工具栏
  31. Private Sub Workbook_AddinUninstall()
  32.     Dim cb As CommandBar
  33.    
  34.     For Each cb In Application.CommandBars
  35.         If cb.Name = sMT Then
  36.             cb.Delete
  37.             Exit For
  38.         End If
  39.     Next
  40.    
  41. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-2-12 17:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
csnAlex 发表于 2015-2-3 11:58
你的用法不对,CommandBars.ActiveMenuBar并不能指定具体的CommandBar,给你个例子。虽然是Excel加载宏用的 ...

谢谢了,要不一大堆啊
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-16 11:15 , Processed in 0.022362 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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