Excel Addins - 不修改工具栏

时间:2015-04-13 17:26:56

标签: vba excel-vba excel-addins excel

我正在寻找将Excel宏部署到用户的最佳方式。我的目标是通过添加到插件工具栏,使最终用户可以非常轻松地安装和促进使用。我知道有很多关于这个主题的帮助文章,但是找不到涵盖这个问题的任何内容。如果这是一个noobie问题,请你帮忙和原谅我。请参阅下面的我的问题的复制步骤。

  1. 我已将以下代码作为工作表事件添加到"此工作表"一个excel宏文件
  2. 我将主代码添加到它引用的模块
  3. 我将此保存为插件漫游文件夹中的.XLAM
  4. 我在EXCEL 2013中启用了这个插件
  5. 安装完成后,将按钮添加到添加标签
  6. 一直工作,直到我关闭Excel,在这种情况下按钮消失
  7. 它仍在主动添加项中,但不在工具栏上
  8. 代码:

    Option Explicit
    
    Dim cControl As CommandBarButton
    
    Private Sub Workbook_AddinInstall()
    
    On Error Resume Next 'Just in case
    
    'Delete any existing menu item that may have been left.
    Application.CommandBars("Worksheet Menu Bar").Controls("Super Code").Delete
    
    'Add the new menu item and Set a CommandBarButton Variable to it
    Set cControl = Application.CommandBars("Worksheet Menu Bar").Controls.Add
    
    'Work with the Variable
        With cControl
            .Caption = "Convert Survey Reporter Tables"
            .Style = msoButtonCaption
            .OnAction = "CMB_General_Table_Formatting"
            'Macro stored in a Standard Module
        End With
    
    On Error GoTo 0
    End Sub
    
    Private Sub Workbook_AddinUninstall()
        On Error Resume Next 'In case it has already gone.
    
       Application.CommandBars("Worksheet Menu Bar").Controls("Convert Survey Reporter Tables").Delete
      On Error GoTo 0
    
    End Sub
    

1 个答案:

答案 0 :(得分:0)

如果您想要使用VBA构建接口的替代方法,我之前使用各种Ribbon XML部署了Excel加载项(XLAM文件)。这允许对结果接口进行非常精细的控制,并且不需要您在VBA中工作来构建接口。对于大多数应用程序,我发现在VBA之外构建Ribbon组件然后在VBA中连接回调要容易得多。

对于最终用户,我认为这种方法还提供了一个更好看的插件,因为生成的界面有自己的功能区选项卡(或者您可以添加到任何现有的选项卡),而不是在加载项功能区中标签

如果您想继续这条路线,我强烈建议您使用Ribbon X Visual Designer构建界面并设置回调。我用它来构建一个加载项,它有超过50个功能,可以通过按钮和其他Ribbon表单控件访问。我走后一点都很轻松。