Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4546|回复: 18

[已解决]增加菜单图标

[复制链接]
发表于 2013-12-10 19:54 | 显示全部楼层 |阅读模式
本帖最后由 张雄友 于 2013-12-11 18:54 编辑

增加菜单图标.
最佳答案
2013-12-11 18:05
本帖最后由 zjdh 于 2013-12-11 18:08 编辑

Call MyButton(P, "统计", 226, "HZ")
统计: 菜单命令
226 : 图标
HZ:   宏

Call MyButton(P, "清除", 478, "QC")
清除: 菜单命令
478 : 图标
QC:   宏
212523vre565rrygrnhk5k.jpg.thumb.jpg

附件.rar

8.62 KB, 下载次数: 3

发表于 2013-12-11 08:46 | 显示全部楼层
add MenuItems 好像不能设置菜单的 FaceId,用以下方法可以设置:
Private Sub Workbook_Open()
    Dim P
    MenuBars(xlWorksheet).Reset
    Dim Button As CommandBarControl
    Set P = Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlPopup)
    P.Caption = "综合统计"
    Call MyButton(P, "统计", 226, "HZ")
    Call MyButton(P, "清除", 478, "QC")
    Call MyButton(P, "保存", 455, "BF")
End Sub
Sub MyButton(MyPopup, Caption As String, FaceId As Integer, OnAction As String)
    Set Button = MyPopup.Controls.Add(Type:=msoControlButton)
    Button.Caption = Caption
    Button.FaceId = FaceId
    Button.OnAction = OnAction
End Sub
回复

使用道具 举报

发表于 2013-12-11 11:21 | 显示全部楼层
巧了,前天也有个人发了一贴,跟你菜单是一模一样的。
用menus对象添加的菜单没有设置图标的方法与属性,换成commandbar来操作吧。

回复

使用道具 举报

发表于 2013-12-11 11:23 | 显示全部楼层
[已解决]请老师们帮帮在这个菜单上加下图标,谢谢大家了!
http://www.excelpx.com/thread-315123-1-1.html
回复

使用道具 举报

 楼主| 发表于 2013-12-11 13:44 | 显示全部楼层
hwc2ycy 发表于 2013-12-11 11:23
[已解决]请老师们帮帮在这个菜单上加下图标,谢谢大家了!
http://www.excelpx.com/thread-315123-1-1.htm ...

此法不妥,要引用工作表中的内容。也不方便指定宏。
回复

使用道具 举报

 楼主| 发表于 2013-12-11 14:23 | 显示全部楼层
zjdh 发表于 2013-12-11 08:46
add MenuItems 好像不能设置菜单的 FaceId,用以下方法可以设置:
Private Sub Workbook_Open()
    Dim  ...

MenuBars(xlWorksheet).Reset   这句代码把我加载项的自定义工具栏全部重置了,危害不小啊。
回复

使用道具 举报

发表于 2013-12-11 16:25 | 显示全部楼层
张雄友 发表于 2013-12-11 13:44
此法不妥,要引用工作表中的内容。也不方便指定宏。

我只是举例子,不想不停的复制粘贴,你要是会用了,直接就写进了代码里了。


回复

使用道具 举报

发表于 2013-12-11 16:59 | 显示全部楼层
那就用
Private Sub Workbook_Open()
    Dim P
    On Error Resume Next
    Application.CommandBars("Worksheet Menu Bar").Controls("综合统计").Delete
    Dim Button As CommandBarControl
    Set P = Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlPopup)
    P.Caption = "综合统计"
    Call MyButton(P, "统计", 226, "HZ")
    Call MyButton(P, "清除", 478, "QC")
    Call MyButton(P, "保存", 455, "BF")
End Sub
Sub MyButton(MyPopup, Caption As String, FaceId As Integer, OnAction As String)
    Set Button = MyPopup.Controls.Add(Type:=msoControlButton)
    Button.Caption = Caption
    Button.FaceId = FaceId
    Button.OnAction = OnAction
End Sub
回复

使用道具 举报

 楼主| 发表于 2013-12-11 17:54 | 显示全部楼层
zjdh 发表于 2013-12-11 16:59
那就用
Private Sub Workbook_Open()
    Dim P

这是怎么指定宏的?
回复

使用道具 举报

 楼主| 发表于 2013-12-11 18:03 | 显示全部楼层
zjdh 发表于 2013-12-11 16:59
那就用
Private Sub Workbook_Open()
    Dim P

以清除为例,是不是这样指定宏的?但是测试不成功。

Private Sub Workbook_Open()
    Dim P
    On Error Resume Next
    Application.CommandBars("Worksheet Menu Bar").Controls("综合统计").Delete
    Dim Button As CommandBarControl
    Set P = Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlPopup)
    P.Caption = "综合统计"
    Call MyButton(P, "统计", 226, "HZ")
    Call MyButton(P, "清除", 478, "QC")
    Call MyButton(P, "保存", 455, "BF")
End Sub
Sub MyButton(MyPopup, Caption As String, FaceId As Integer, OnAction As String)
    Set Button = MyPopup.Controls.Add(Type:=msoControlButton)
    Button.Caption = Caption
    Button.FaceId = FaceId
    Button.OnAction = OnAction
End Sub

Sub 清除()
Selection.ClearContents
End Sub


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 03:08 , Processed in 0.493678 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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