如何创建一个带有工具栏的插件
How to create an addin with a toolbar in it
我正在努力寻找解决问题的方法。
我设计了几个用户窗体并在一个工作簿中编写了许多函数,并且我添加了一个带有调用这些函数的按钮的新工具栏。
现在我想要的是将此工作簿保存为加载项,这样当我在另一台 PC 上添加加载项时,工具栏就会出现。
但是工具栏没有出现。我可以将工作簿保存为包含所有功能和用户窗体的加载项,但我无法获得工具栏。
有什么建议吗?
绝不是解决方案,但也许以下内容提供了一个起点:
根据你所说的,我假设你做到了
- 在另一台电脑上激活您的 *.xlam 加载项
- 您可以访问它的所有 vba-代码和用户表单
- 您可以不能访问它的 CustomUI 功能区
检查您的最终 *.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
我正在努力寻找解决问题的方法。
我设计了几个用户窗体并在一个工作簿中编写了许多函数,并且我添加了一个带有调用这些函数的按钮的新工具栏。
现在我想要的是将此工作簿保存为加载项,这样当我在另一台 PC 上添加加载项时,工具栏就会出现。
但是工具栏没有出现。我可以将工作簿保存为包含所有功能和用户窗体的加载项,但我无法获得工具栏。
有什么建议吗?
绝不是解决方案,但也许以下内容提供了一个起点:
根据你所说的,我假设你做到了
- 在另一台电脑上激活您的 *.xlam 加载项
- 您可以访问它的所有 vba-代码和用户表单
- 您可以不能访问它的 CustomUI 功能区
检查您的最终 *.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