【发布时间】:2021-01-29 07:44:17
【问题描述】:
我做了一个程序,希望分发给我的同事,他们不是面向 VBA 的。所以我希望很容易分发它。
我创建了一个插件,安装插件时需要创建一个自定义功能区。我尽力了,但我找不到易于理解的文档。
我的代码如下:
Private Sub Workbook_AddinInstall()
On Error Resume Next 'Just in case
Application.CommandBars("Worksheet Menu Bar").Controls("Super Code").Delete
Set cControl = Application.CommandBars("Worksheet Menu Bar").Controls.Add
With cControl
.Caption = "Open SCF workbook"
.Style = msoButtonIconAndCaptionBelow
.OnAction = "OpenTheCorrectFile"
.FaceId = 7720
.DescriptionText = "Open the SCF workbook"
End With
Set cControl = Application.CommandBars("Worksheet Menu Bar").Controls.Add
With cControl
.Caption = "Are they onboard"
.Style = msoButtonIconAndCaptionBelow
.FaceId = 5817
.OnAction = "Check_Suppliers_Already_On_Board"
.DescriptionText = "Check if suppliers have already been on boarded"
End With
End Sub
现在,如果您使用我的代码,您会注意到:
- 按钮很小
- 图标很小
- 悬停时没有描述
- 新功能区没有特殊名称,称为加载项
- 此组无特殊名称,称为“菜单命令”
有谁知道如何解决这个问题。 每当我在寻找人们使用特殊应用程序来创建功能区的答案时,我都不想这样做。我也是 VBA 的初学者,所以欢迎任何容易理解的东西。
非常感谢。
【问题讨论】:
-
有一个 TooltipText 属性可用于设置悬停描述(可用属性列表:docs.microsoft.com/en-us/office/vba/api/overview/…)
-
还有 Width 和 Height 属性,但我无法让它们工作(按钮大小没有改变)。显然,更好的自定义现在需要 XML、Microsoft Office 的自定义 UI 编辑器或类似的东西。我认为仅使用 VBA 是不可能的。
-
这里有一个很好的例子来说明如何做到这一点,没有任何应用程序,但是您必须手动编辑 customUI.xml 文件和 xlsm 文件结构(重命名为 .zip,然后编辑 /添加一些文件,并再次重命名为 .xlsm):docs.microsoft.com/en-us/office/vba/library-reference/concepts/…
-
非常感谢伊万。我会试试你在这里给我的建议。并感谢工具提示属性。
标签: vba excel-addins