Excel精英培训网

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

[已解决]VB中制作COM加载项时,如何添加子菜单

[复制链接]
发表于 2013-7-19 10:11 | 显示全部楼层 |阅读模式
以下是添加菜单按钮的代码,如何在mn2.Caption = "提取E表数据" 下 添加二级子菜单。
另请帮忙给注释一下红色代码部分。谢谢了。

Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant)

'    Dim mymenu As Object 'CommandBarControl
'    Dim mnMain As Object
'    Dim mn1 As Object, mn2 As Object
    On Error Resume Next

    Set oXL = Application
    oXL.CommandBars("Worksheet Menu Bar").Controls("提取功能").Delete
    Set mnMain = oXL.CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlPopup, Before:=11)
    mnMain.Caption = "提取功能"
    Set mn1 = mnMain.Controls.Add(Type:=msoControlButton, Before:=1)
    With mn1
        .Caption = "提取文件名"
        .OnAction = "!<" & AddInInst.ProgId & ">"
        .FaceId = 162
        '.Visible = True
    End With
    Set mn2 = mnMain.Controls.Add(Type:=msoControlButton, Before:=2)
    With mn2
        .Caption = "提取E表数据"
        .BeginGroup = True '增加间隔符
        .OnAction = "!<" & AddInInst.ProgId & ">"
        .FaceId = 300
        '.Visible = True
    End With
End Sub

最佳答案
2013-7-19 11:32
(, 下载次数: 76)
发表于 2013-7-19 10:13 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2013-7-19 10:18 | 显示全部楼层
甲百 发表于 2013-7-19 10:13
http://www.excelpx.com/thread-144143-1-1.html

哈哈,我就是COPY的这个贴子上的,修改的他的。
但是不会添加子菜单,也看不太明白这段代码。。所以才上来求助的。
回复

使用道具 举报

发表于 2013-7-19 10:20 | 显示全部楼层
再添加CONTROLS
回复

使用道具 举报

发表于 2013-7-19 10:24 | 显示全部楼层
一级的类型为POPUP,二级的为BUTTON
回复

使用道具 举报

发表于 2013-7-19 10:28 | 显示全部楼层
  1.     Set mn2 = mnMain.Controls.Add(Type:=msoControlPopup, Before:=2)
  2.     With mn2
  3.         .Caption = "提取E表数据"
  4.         .BeginGroup = True    '增加间隔符
  5.         .FaceId = 300
  6.         .Visible = True
  7.         With .Controls.Add(Type:=msoControlButton)
  8.             .Caption = "子菜单一"
  9.             .Visible = True
  10.         End With
  11.         With .Controls.Add(Type:=msoControlButton)
  12.             .Caption = "子菜单二"
  13.             .Visible = True
  14.         End With
  15.     End With
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-7-19 10:34 | 显示全部楼层
本帖最后由 事后诸葛亮 于 2013-7-19 10:36 编辑
hwc2ycy 发表于 2013-7-19 10:28

出错了,方法数据成员未找到。。

QQ截图20130719103332.jpg
我开始也是这么修改的,出错,所以来问一下。谢谢你了。
回复

使用道具 举报

发表于 2013-7-19 10:39 | 显示全部楼层
弄错了,不好意思。
==
回复

使用道具 举报

发表于 2013-7-19 10:44 | 显示全部楼层
QQ截图20130719104529.jpg
回复

使用道具 举报

发表于 2013-7-19 10:44 | 显示全部楼层
直接在EXCEL中是没问题的。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 03:07 , Processed in 0.434863 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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