ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] CommandBars与自定义菜单

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-6-28 21:33 | 显示全部楼层 |阅读模式
本帖最后由 一指禅62 于 2018-6-28 21:36 编辑

CommandBars与自定义菜单.zip (12.11 KB, 下载次数: 771)


评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-6-28 21:51 | 显示全部楼层
谢谢分享                                                                                                   

TA的精华主题

TA的得分主题

发表于 2019-2-12 15:55 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-11-26 10:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
謝謝分享,學習一下。

TA的精华主题

TA的得分主题

发表于 2020-5-17 10:34 | 显示全部楼层
谢谢分享 Option Explicit

Sub Auto_Open()
    生成自定义菜单
End Sub

Sub Auto_Close()
    删除自定义菜单
End Sub
Option Explicit

Dim MenuBar As CommandBarPopup
Dim MenuItem As Object
Dim SubMenuItem As Object

Sub 删除自定义菜单()
    On Error Resume Next
    Dim ctl As Object
    For Each ctl In CommandBars(1).Controls
        If ctl.Tag Like "*自定义*" Then ctl.Delete
    Next
End Sub

Sub 生成自定义菜单()
    On Error Resume Next
    Dim cb As CommandBar
    Call 删除自定义菜单
    Call 主菜单("客户管理")
    Call 子菜单2("客户入院登记", "床位表管理")
    Call 子菜单2("客户出院办理", "客户出院办理")
    Call 子菜单1("客户结算")
    Call 子菜单11("结算", "客户结算")
    Call 子菜单11("打印", "打印结算")
   
    Call 主菜单("日常管理")
    Call 子菜单1("填写医嘱单")
    Call 子菜单11("长嘱单", "医嘱单_长期")
    Call 子菜单11("临嘱单", "医嘱单_临时")
    Call 子菜单11("保存医嘱单", "医嘱单_保存")
   
    Call 子菜单1("执行医嘱单")
    Call 子菜单11("今日已执行医嘱单", "医嘱单_今日已执行")
    Call 子菜单11("今日未执行医嘱单", "医嘱单_今日未执行")
    Call 子菜单11("打印医嘱单", "医嘱单_打印")
    Call 子菜单11("停止执行医嘱", "医嘱单_执行")

    Call 子菜单2("药品入库", "药品入库")

    Call 主菜单("报表管理")
    Call 子菜单2("客户费用明细表", "客户结算")
    Call 子菜单2("客户自备药明细表", "客户结算")
    Call 子菜单2("药品库存明细表", "药品库存明细表")

    Call 主菜单("数据维护")
    Call 子菜单2("床位表维护", "床位表管理")
    Call 子菜单2("价目表维护", "价目表维护")
    Call 子菜单2("展开全部表", "展开全部表")

    Call 主菜单("操作员")
    Call 子菜单2("登录", "操作员登录")
    Call 子菜单2("退出", "操作员退出")
   
'    Dim ctl As CommandBarControl
'    For Each ctl In Application.CommandBars(1).Controls 'Worksheet Menu Bar'Standard'Cell,"Worksheet Menu Bar"
'        Debug.Print ctl.Index, ctl.Parameter, ctl.Caption    ', ctl.OnAction'cb.Position, ,
'    Next
End Sub

Private Sub 主菜单(myCaption As String)
    Set MenuBar = Application.CommandBars(1).Controls.Add(Type:=msoControlPopup, temporary:=True) ' myMenuObject
    With MenuBar
        .Caption = myCaption
        .Width = 50
        .BeginGroup = True
        .Tag = "自定义"
    End With
End Sub

Public Sub 子菜单1(myCaption As String)
    Set MenuItem = MenuBar.Controls.Add(Type:=msoControlPopup)
    With MenuItem
        .Caption = myCaption
        .BeginGroup = True
    End With
End Sub
Private Sub 子菜单11(myCaption As String, myOnAction As String)
    Set SubMenuItem = MenuItem.Controls.Add(Type:=msoControlButton)
    With SubMenuItem
        .Caption = myCaption
        .OnAction = myOnAction
        .BeginGroup = True
    End With
End Sub

Private Sub 子菜单2(myCaption As String, myOnAction As String)
    Set MenuItem = MenuBar.Controls.Add(Type:=msoControlButton)
    With MenuItem
        .Caption = myCaption
        .OnAction = myOnAction
        .BeginGroup = True
    End With
End Sub



TA的精华主题

TA的得分主题

发表于 2020-8-2 21:49 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-10-14 14:32 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请问一下。
1、如果 主菜单上 不是菜单是宏 如何改?(一级为宏名称)
2. 如何建三级菜单
主菜单---子菜单1---子菜单2--宏名 ?
谢谢

TA的精华主题

TA的得分主题

发表于 2020-11-19 12:11 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-11-24 09:59 | 显示全部楼层
clark 发表于 2020-11-19 12:11
运行结果菜单分成了多行,怎么变成一行

CommandBars是2003版本的产物。在2003以上版本就是这个样子的。

TA的精华主题

TA的得分主题

发表于 2020-11-25 09:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
一指禅62 发表于 2020-11-24 09:59
CommandBars是2003版本的产物。在2003以上版本就是这个样子的。

应该有参数能调整吧,挨个试了一遍,没找到,应该有个指定行数,或自动适应的参数。试了试,往后加的菜单项足够多的话,他会自动后延
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-4-28 03:38 , Processed in 0.048959 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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