gpt4 book ai didi

excel - 如何使用 VBA 添加自定义功能区选项卡?

转载 作者:行者123 更新时间:2023-12-01 16:16:49 35 4
gpt4 key购买 nike

我正在寻找一种在 Excel 功能区中添加自定义选项卡的方法,该选项卡将带有一些按钮。我偶然通过谷歌找到了一些解决这个问题的资源,但所有资源看起来都很狡猾而且极其复杂。

有什么快速而简单的方法可以做到这一点?我希望在我的 VBA 加载到 Excel 中时加载新选项卡..

更新:我尝试了 here 中的这个例子但在最后一条指令上出现“需要对象”错误:

Public Sub AddHighlightRibbon()
Dim ribbonXml As String

ribbonXml = "<mso:customUI xmlns:mso=""http://schemas.microsoft.com/office/2009/07/customui"">"
ribbonXml = ribbonXml + " <mso:ribbon>"
ribbonXml = ribbonXml + " <mso:qat/>"
ribbonXml = ribbonXml + " <mso:tabs>"
ribbonXml = ribbonXml + " <mso:tab id=""highlightTab"" label=""Highlight"" insertBeforeQ=""mso:TabFormat"">"
ribbonXml = ribbonXml + " <mso:group id=""testGroup"" label=""Test"" autoScale=""true"">"
ribbonXml = ribbonXml + " <mso:button id=""highlightManualTasks"" label=""Toggle Manual Task Color"" "
ribbonXml = ribbonXml + "imageMso=""DiagramTargetInsertClassic"" onAction=""ToggleManualTasksColor""/>"
ribbonXml = ribbonXml + " </mso:group>"
ribbonXml = ribbonXml + " </mso:tab>"
ribbonXml = ribbonXml + " </mso:tabs>"
ribbonXml = ribbonXml + " </mso:ribbon>"
ribbonXml = ribbonXml + "</mso:customUI>"

ActiveProject.SetCustomUI (ribbonXml)
End Sub

最佳答案

据我所知,您无法使用 VBA Excel 在 Excel 功能区中创建自定义选项卡。但是,您可以使用 VBA 隐藏/使功能区组件可见。此外,您上面提到的链接适用于 MS Project,而不是 MS Excel。

我使用名为 Custom UI Editor 的免费实用程序为我的 Excel 应用程序/加载项创建选项卡.

<小时/>

编辑:满足OP的新请求

教程

这是一个 promise 的简短教程:

  1. 安装自定义 UI 编辑器 (CUIE) 后,将其打开,然后单击"file"|“打开并选择相关的 Excel 文件。在通过 CUIE 打开 Excel 文件之前,请确保该文件已关闭。我使用全新的工作表作为示例。

enter image description here

  • 如下图所示右键单击,然后单击“Office 2007 自定义 UI 部件”。它将插入“customUI.xml”
  • enter image description here

  • 下一步单击菜单“插入|”示例 XML |自定义选项卡。您会注意到基本代码是自动生成的。现在您已准备好根据您的要求进行编辑。
  • enter image description here

  • 让我们检查一下代码
  • enter image description here

    label="Custom Tab":将“Custom Tab”替换为您想要为选项卡指定的名称。暂时我们称其为“Jerome”。

    下面的部分添加了一个自定义按钮。

        <button id="customButton" label="Custom Button" imageMso="HappyFace" size="large" onAction="Callback" />

    `imageMso`: This is the image that will display on the button. "HappyFace" is what you will see at the moment. [You can download more image ID's here](https://www.dropbox.com/s/8mvexoalel6icix/Office2007IconsGallery.EXE?dl=0).

    `onAction="Callback"`: "Callback" is the name of the procedure which runs when you click on the button.

    演示

    这样,我们创建 2 个按钮,并将它们命名为“JG Button 1”和“JG Button 2”。让我们保留第一个图像的笑脸,让我们保留第二个图像的“太阳”。修改后的代码现在如下所示:

    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon startFromScratch="false">
    <tabs>
    <tab id="MyCustomTab" label="Jerome" insertAfterMso="TabView">
    <group id="customGroup1" label="First Tab">
    <button id="customButton1" label="JG Button 1" imageMso="HappyFace" size="large" onAction="Callback1" />
    <button id="customButton2" label="JG Button 2" imageMso="PictureBrightnessGallery" size="large" onAction="Callback2" />
    </group>
    </tab>
    </tabs>
    </ribbon>
    </customUI>

    删除 CUIE 中生成的所有代码,然后粘贴上面的代码来代替它。保存并关闭 CUIE。现在,当您打开 Excel 文件时,它将如下所示:

    enter image description here

    现在是代码部分。打开 VBA 编辑器,插入模块,然后粘贴以下代码:

    Public Sub Callback1(control As IRibbonControl)

    MsgBox "You pressed Happy Face"

    End Sub

    Public Sub Callback2(control As IRibbonControl)

    MsgBox "You pressed the Sun"

    End Sub

    将 Excel 文件另存为启用宏的文件。现在,当您单击笑脸或太阳时,您将看到相关的消息框:

    enter image description here

    关于excel - 如何使用 VBA 添加自定义功能区选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8850836/

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