如何在其中创建带有工具栏的插件

时间:2017-01-05 12:51:32

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

我正在努力寻找解决问题的方法。

我设计了几个UserForms并在工作簿中编写了许多函数,并添加了一个新工具栏,其中包含调用这些函数的按钮。

现在我想要的是将此工作簿保存为插件,这样当我在另一台PC上添加插件时,工具栏就会出现。

但是工具栏没有出现。我可以将Workbook保存为包含所有函数和UserForms的加载项,但是我无法获得工具栏。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

决不是解决方案,但以下可能提供了一个起点:

根据你的说法我假设你管理了

  • 在另一台电脑上激活您的* .xlam加载项
  • 您可以访问它的所有vba代码和用户形式
  • 您可以访问它的CustomUI-ribbon

在部署时,检查最终的*.xlam是否仍有工具栏中的工具栏:

  • 备份您可以部署的加载项文件(*.xlam)。
  • 打开文件,方法是将文件扩展名更改为.zip。 (如果您使用7-zip
  • 等文件存档,则无需重命名
  • 文件\customUI\customUI.xml的内容应大致类似于以下内容。

示例XML:

<customUI
xmlns="http://schemas.microsoft.com/office/2006/01/customui"
xmlns:shared="sharedNamespace"
onLoad="onLoadRibbonDB"
>
 <ribbon>
    <tabs>
        <tab idQ="shared:tabControls" label="AddIn_Beispiele" >

            <group id="grpA" label="Buttons">
                <button id="buttonA" label="Button_large" image="bunny2" onAction="buttonA_Click" size="large"/>
            </group>    

        </tab>
    </tabs>
 </ribbon>
</customUI>

请注意,如果功能区中甚至出现轻微错误,Excel将不会显示功能区。要进行测试,请排除任何可能导致错误的内容,然后逐步重新引入功能区控件。如果发现以下最常见的:

  • id不明显(例如用于其他彩带/加载项)
  • 自定义图标格式不正确
  • 自定义图标未正确引用

偏离主题:如果您打算在众多PC上部署文件,可以使用以下简单的宏:

Sub InstallAddIn()

    On Error GoTo skpError

    Dim path as String
    path = "L:\SQL_AddIn\SQL_AddIn_V1.0.xlam"
    name = "SQL_AddIn_V1.0"

    ' Copy the file
    With New FileSystemObject
        .CopyFile _
            path _
            , "C:\Users\" & Environ("USERNAME") & "\AppData\Roaming\Microsoft\AddIns\"
    End With

    ' Add-In Aktivieren
    AddIns(name).Installed = True
    MsgBox ws1.Cells(1, 2).Value & " installiert.", vbInformation
    Exit Sub

skpError:
    MsgBox "Fehler #" & Err & vbNewLine & Error

End Sub