我正在尝试引用我已更改名称的模块中的宏,因为列表正在增长,我需要有一个特定的名称,所以我不会开始寻找合适的名称。我的问题是我正在创建一个自定义功能区菜单,我正在尝试将宏分配给按钮,但我只能成功引用标准命名模块ex module1
中的宏。下面的图片将澄清我的情况。
下面是我创建按钮的代码,我仍在尝试使用它来查看,但我想要实现的是方形按钮,有人可以指向正确的方向,这将是惊人的。目前唯一有效的按钮是它位于Module1
的upperCase和RemoveAddIn。
Private Sub AddButtons()
'
'change 'Startups...' to suit
Const MyControl As String = "Applications..."
'change 'Manage Startups' to suit
Const MyControlCaption As String = "Manage Applications"
'
Dim AddinTitle As String, Mybar As Object
'
AddinTitle = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4)
'
Call RemoveButtons
'
On Error GoTo ErrHandler
Set Mybar = Application.CommandBars("Worksheet Menu Bar") _
.Controls("Tools").Controls _
.Add(Type:=msoControlPopup, before:=13)
'
With Mybar
.BeginGroup = True
.Caption = MyControl
'-------------------------------------------------------------
.Controls.Add.Caption = MyControlCaption
.Controls(MyControlCaption).OnAction = "ShowStartupForm"
'-------------------------------------------------------------
With .Controls.Add
.BeginGroup = True
.Caption = "About " & AddinTitle
End With
.Controls("About " & AddinTitle).OnAction = "ShowAboutForm"
'-------------------------------------------------------------
.Controls.Add.Caption = "Remove " & AddinTitle
.Controls("Remove " & AddinTitle).OnAction = "RemoveAddIn"
.Controls.Add.Caption = "upperCase " & AddinTitle
.Controls("upperCase " & AddinTitle).OnAction = "upperCase"
'-------------------------------------------------------------
End With
Exit Sub
'
ErrHandler:
Set Mybar = Nothing
Set Mybar = Application.CommandBars("Tools") _
.Controls.Add(Type:=msoControlPopup, before:=13)
Resume Next
End Sub