gpt4 book ai didi

VBA - 功能区自定义 - 添加附加组件时

转载 作者:行者123 更新时间:2023-12-05 06:05:52 25 4
gpt4 key购买 nike

我做了一个程序,希望分发给我的同事,他们不是面向 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 的初学者,所以欢迎所有易于理解的内容。

非常感谢。

最佳答案

这是一个示例,说明如何在不使用任何外部应用程序(仅使用文本编辑器)的情况下完成此操作。但您必须注意正确编写 XML 代码,否则 excel 文件可能无法正确打开(请备份)。

  1. 您将创建一个名为“customUI”的文件夹,并在该文件夹中创建一个名为“customUI.xml”的文件

  2. 您将在“customUI.xml”中写入所有功能区详细信息。我写了这个例子,涵盖了你列出的问题:大按钮和图标(https://bert-toolkit.com/imagemso-list.html 中的图像列表)/工具提示描述(屏幕提示和 super 提示)/功能区名称(选项卡标签)/组名称(组标签)

    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">  
    <ribbon>
    <tabs>
    <tab id="CustomTab" label="Add-ins">
    <group id="Group1" label="Menu Commands">
    <button id="Button1" label="Happy" size="large" screentip="Test1" supertip="Test1 description" imageMso="HappyFace" onAction="Macro1" />
    <button id="Button2" label="Save" size="large" imageMso="FileSave" onAction="Macro2" />
    <button id="Button3" label="{a}" size="large" imageMso="FieldCodes" onAction="Macro3" />
    </group >
    <group id="Group2" label="Other Commands">
    <button id="Button4" label="Reply" size="large" imageMso="Reply" onAction="Macro4" />
    </group >
    </tab>
    </tabs>
    </ribbon>
    </customUI>
  1. 将您的 .XLSM 文件重命名为 .ZIP,然后您将能够编辑/添加文件。将 customUI 文件夹添加到 zip 文件。

  2. 从 ZIP 文件中提取 _rels 文件夹中的 .rels 文件,您将在最后一个 Relationships 标签和 Relationships 结束标签之间添加这一行,然后将其放回 ZIP 文件中覆盖 .rels 文件。那里有 rels 文件

     <Relationship Id="someID" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="customUI/customUI.xml" /> 
  3. 将文件重命名回 .XLSM 并打开它,如果一切正常,新的功能区就会出现。重要的是,将由按钮调用的宏具有控制参数,如下所示:

     Sub Macro3(ByVal control As IRibbonControl)

就是这样,关于 UI 的所有内容都在 customUI.xml 文件中,不再需要在 VBA 中添加按钮。如果必须更改 UI 中的某些内容,则必须再次将其重命名为 ZIP,覆盖 customUI.xml 文件并再次重命名为 XLSM。这是我在此示例中获得的功能区:

Ribbon Menu Test

关于VBA - 功能区自定义 - 添加附加组件时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65934896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com