Excel 2016:使用Ribbon XML将分析组添加到Windows和Mac的“自定义”选项卡

时间:2018-10-14 07:27:08

标签: excel xml ribbon ribbonx

我要在自定义选项卡上画龙点睛,我使用XML将其添加到Excel 2016 Ribbon中,但有一个我似乎无法过去的最终问题:通常,我似乎找不到Analysis组的idMso属性在“数据”标签中找到。为了使目标用户易于使用,我也想将“分析”组添加到我的自定义选项卡中。有关此问题的几个问题:

1)Analysis组的idMso属性是什么,以便可以将其添加到自定义标签中?

2)是否可以使用XML代码来确保始终将Data Analysis Tookpak添加到我的自定义Analysis组中?如果是这样,有人可以建议执行此操作的代码吗?

3)现在,我正在开发此代码以在Windows的Excel 2016上运行。但最终,我希望将此代码合并到Windows和Mac用户的外接程序中。此XML代码在Windows和Mac的Excel 2016中都可以使用吗?如果不是,是否可以在XML中使用条件逻辑并让代码测试操作系统是Windows还是Mac,然后运行适当的XML代码以将预期的自定义按钮和标准Excel组添加到我的自定义标签中?

1 个答案:

答案 0 :(得分:0)

概述

我发现此问题的方法是在安装外接程序后搜索FUNCRES.XLAM按钮的supertip中引用的文件名Data Analysis。然后,我使用Custom UI Editor Tool打开文件以查看XML。我将示例文件保存在GitHub中。


  1. 您可以引用操作,但不能引用自定义xlam的控件,例如onAction="FUNCRES.XLAM!ShowATPDialog"

  2. 您可以使用以下XML将按钮添加到自定义组。仅供参考,仍必须加载插件才能使按钮起作用。

XML代码

<button 
    id="btnDataAnalysisTools"
    label="Data Analysis"
    imageMso="XmlMapProperties"
    onAction="FUNCRES.XLAM!ShowATPDialog"
    size="large"
    screentip="Data Analysis Tools"
    supertip="Tools for financial and scientific data analysis. Referenced from FUNCRES.XLAM"
/>

示例视频

video

2a。如果要在运行时加载加载项,可以使用以下选项。 Reference

  • Application.RegisterXLL
    • 这是一种可以从VBA调用的方法,该方法将XLL加载到特定位置并注册XLL中包含的功能和命令。
  • AddIns.Add
    • 这是一种可以从VBA调用的方法,该方法可以加载任何类型的加载项(XLL,XLA或XLAM)。加载外接程序后,执行步骤3将其打开。
  • AddIn.Installed = true
    • 一旦引用了已加载的加载项,请将AddIn.Installed = true设置为打开该加载项。
    • 请注意,使用/ automation开关启动Excel时已知的加载项已被标记为“已安装”,但未打开。在这种情况下,请先将Set Installed = false设置为Installed = true

VBA代码

Private Sub Workbook_Open()
    Dim success As Boolean
    Dim myAddIn As AddIn

    ' Load XLL
    success = Application.RegisterXLL("c:\myaddins\myxll.xll")

    ' Load and install new XLAM
    Set myAddIn = Application.AddIns.Add("c:\myaddins\myxlam.xlam")
    myAddIn.Installed = True

    ' Load known XLAM
    For Each myAddIn In AddIns
        If myAddIn.Name = "myknownaddin.xlam" Then
            myAddIn.Installed = False
            myAddIn.Installed = True
        End If
    Next
End Sub

  1. 如果您的加载项必须在支持您定义的方法的所有平台上运行,那么您需要使用JavaScript API for Office