分享

Excel 可任意扩展的菜单及功能代码

 星之明光 2011-08-30

[分享] 可任意扩展的菜单及功能代码 [复制链接]

'*************************************************'
'*    可任意扩展的菜单及功能代码         *'
'*       -------------------------------             *'
'*               日期:2009-10-1                 *'
'*************************************************'

Sub AddCustomMenu() '建立自定义菜单主调程序
   On Error Resume Next
      Application.ScreenUpdating = False
      For i = Application.MenuBars(xlWorksheet).Menus.Count To 1 Step -1
          Application.MenuBars(xlWorksheet).Menus.Item(i).Delete
     Next i
     With Application
        .CommandBars("Standard").Visible = False
        .CommandBars("Formatting").Visible = False
        .CommandBars("Stop Recording").Visible = False
        .CommandBars("toolbar list").Enabled = False
        .CommandBars.DisableAskAQuestionDropdown = True
        .DisplayFormulaBar = False
    End With
    Dim cmb As CommandBarControl

    Set cmb = AddCustomCommandBarPopup("主菜单1(&字母)") '设置主菜单
   
    AddCustomCommandBarItem cmb, "下级菜单1(&字母)", "宏1", False, True, 0, "" '设置下级菜单并调用宏1
    Set cmb = Application.CommandBars("Worksheet Menu Bar").Controls("主菜单1(&字母)")
    AddCustomCommandBarItem cmb, "下级菜单1(&字母)", "", False, True, 0, "" '与"下级菜单1(&字母)"菜单同级


    Set cmb = AddCustomCommandBarPopup("主菜单2(&字母)") '设置主菜单
   
    AddCustomCommandBarItem cmb, "下级菜单2", "宏2", False, True, 0, "" '设置下级菜单并调用宏2

   '可任意扩展菜单项

  '……
End Sub

Function AddCustomCommandBarPopup(Caption As String) As CommandBarControl    '添加主菜单项
   Dim cmb As CommandBarControl
    Set cmb = Application.CommandBars("Worksheet Menu Bar").Controls.Add(msoControlPopup)
    cmb.Caption = Caption
    cmb.Visible = True
    Set AddCustomCommandBarPopup = cmb
End Function

Sub AddCustomCommandBarItem(cmbc As CommandBarControl, _
                            Caption As String, Macro As String, NewGroup As Boolean, Enable As Boolean, FId As Integer, ShortT As String)    '添加菜单选项
    Dim cbb As CommandBarButton
    Set cbb = cmbc.Controls.Add(msoControlButton)
    cbb.Caption = Caption
    If FId > 0 Then cbb.FaceId = FId
    If ShortT <> "" Then cbb.ShortcutText = ShortT
    cbb.OnAction = Macro
    cbb.BeginGroup = NewGroup
    cbb.Enabled = Enable
End Sub

Function AddCustomCommandBarPopup2(cmbc As CommandBarControl, Caption As String) As CommandBarControl   '添加子菜单项
    Dim cmb As CommandBarControl
    Set cmb = cmbc.Controls.Add(msoControlPopup)
    cmb.Caption = Caption
    cmb.Visible = True
    Set AddCustomCommandBarPopup2 = cmb
End Function

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多