Excel VBA - 命令栏 - 更改变量的属性?

时间:2013-12-05 14:51:05

标签: excel vba excel-vba add-in excel-addins

在我为工作创建这个简单加载项的持续战斗中。

我现在决定使用命令栏内的命令按钮来打开和关闭提醒,这是我下面的代码。

Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
Dim cmbBar As CommandBar
Dim cmbControl As CommandBarControl

Set cmbBar = Application.CommandBars("Worksheet Menu Bar")
Set cmbControl = cmbBar.Controls.Add(Type:=msoControlPopup, temporary:=True) 'adds a menu item to the Menu Bar
With cmbControl
    .Caption = "LLE Encryption Reminder" 'names the menu item
With .Controls.Add(Type:=msoControlButton) 'adds a dropdown button to the menu item
    .Caption = "Enable Reminder" 'adds a description to the menu item
    .OnAction = "'Enable'"
    .FaceId = 343 'assigns an icon to the dropdown
    End With
With .Controls.Add(Type:=msoControlButton) 'adds a dropdown button to the menu item
    .Caption = "Disable Reminder" 'adds a description to the menu item
    .OnAction = "'Disable'"
    .FaceId = 342 'assigns an icon to the dropdown
    End With
End With
End Sub

Private Sub Enable()
Response = True
End Sub

Private Sub Disable()
Response = False
End Sub

响应是一个布尔值,我已尝试各种方法使其工作,并且每次“无法运行宏”路径名时返回相同的错误。宏可能在此工作簿或所有宏中不可用可能会被禁用。

你如何克服这个问题?

同样在同一主题上,我是否还有某种标签显示响应状态?

这段代码在一个名为CExcelEvents的类模块中,在从这个网站上阅读一个新类模块中的应用程序事件后http://www.cpearson.com/Excel/AppEvent.aspx我的印象是我的插件的代码需要放在同一个类模块中,我是假设这个错了吗?在ThisWorkbook中,我有以下代码,用于使我的类模块工作。

Private XLApp As CExcelEvents

Private Sub Workbook_Open()
Set XLApp = New CExcelEvents
End Sub

1 个答案:

答案 0 :(得分:1)

我通过将subs和public变量移动到一个单独的模块而不是类模块来解决这个问题,然后对我遇到的问题进行了排序。