在word弹出的右键菜单中加上自定义的菜单项

Word中的右键弹出菜单也是保存在CommandBars集合中。可以通过辨识Type属性来列出这些弹出菜单。弹出菜单的Type为   msoBarTypePopup。如下为列出所有Word弹出菜单名称的代码。你可以从其中查找你所需要添加菜单项的弹出菜单的序号。  
   
  For   i   =   1   To   CommandBars.Count  
   
  If   CommandBars(i).Type   =   msoBarTypePopup   Then  
           
          Debug.Print   i   &   "   -   "   &   CommandBars(i).Name  
           
  End   If  
   
  Next  
   
  对于添加菜单项和显示弹出菜单,请使用如下样例代码(其中47为弹出菜单的序号,您可以从上段代码中找出):  
   
  Dim   oBtn   As   CommandBarButton  
  Set   oBtn   =   CommandBars(47).Controls.Add(Type:=msoControlButton,   Temporary:=False)  
   
  oBtn.Caption   =   "Test   Button"  
  oBtn.OnAction   =   "TestBtnClick"   ‘请另外添加一sub并起名为TestBtnClick用来相应新菜单项的点击事件  
   
  ‘显示弹出菜单  
  CommandBars(47).ShowPopup   

把代码写到normal.dot里每次加载就ok了
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以通过以下步骤在Word添加右键菜单及子菜单,并且菜单是可恢复的: 1. 打开Word文档,按下Alt + F11打开VBA编辑器。 2. 在VBA编辑器,点击【插入】->【模块】,新建一个模块。 3. 在新建的模块,输入以下代码: ``` Option Explicit ' 定义变量 Private WithEvents App As Application Private MyMenu As CommandBarPopup ' 初始化 Sub Init() Set App = Application Set MyMenu = CommandBars("Text").Controls.Add(Type:=msoControlPopup, Before:=13) With MyMenu .Caption = "我的菜单" .Tag = "MyMenu" .Visible = True End With End Sub ' 添加菜单 Sub AddSubMenu() Dim NewMenu As CommandBarPopup Set NewMenu = MyMenu.Controls.Add(Type:=msoControlPopup) With NewMenu .Caption = "子菜单1" .Tag = "SubMenu1" .Visible = True End With End Sub ' 移除子菜单 Sub RemoveSubMenu() Dim Ctrl As CommandBarControl For Each Ctrl In MyMenu.Controls If Ctrl.Tag = "SubMenu1" Then Ctrl.Delete Exit For End If Next Ctrl End Sub ' 清除菜单 Sub ClearMenu() Dim Ctrl As CommandBarControl For Each Ctrl In MyMenu.Controls Ctrl.Delete Next Ctrl End Sub ' 事件处理 Private Sub App_WindowSelectionChange(ByVal Sel As Selection) ' 在此处处理右键菜单的显示/隐藏 If Sel.Text <> "" Then MyMenu.Visible = True Else MyMenu.Visible = False End If End Sub ``` 4. 保存并关闭VBA编辑器,返回Word文档界面。 5. 按下Alt + F8打开宏窗口,运行Init宏,可以在Word右键菜单看到一个名为“我的菜单”的菜单项。 6. 再运行AddSubMenu宏,可以在“我的菜单”下添加一个名为“子菜单1”的子菜单项。 7. 运行RemoveSubMenu宏,可以将“子菜单1”子菜单项移除。 8. 运行ClearMenu宏,可以将整个菜单清空。 这样,您就可以通过VBA在Word添加右键菜单及子菜单,并且菜单是可恢复的。在MyMenu的Visible属性,您可以自定义菜单的显示/隐藏条件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值