隐藏MS Officefunction区中的加载项选项卡(特别是PowerPivot选项卡)

我正在修改Excel文件的function区,隐藏所有默认和上下文选项卡,但只显示我自己的选项卡。 但是,一旦安装了带有自己的选项卡的加载项,这些选项卡仍然显示,因为我不知道如何解决它们。

我知道你可以使用<ribbon startFromScratch="true">删除所有的选项卡,但我需要把它们留在原地(我实际上使用getVisiblecallback从用户隐藏它们,但显示给pipe理员)。

所以,下面的问题:

  1. 有什么办法来应用“默认”getVisiblecallback所有标签不知道(我想答案是否定的)
  2. 我怎样才能找出其他加载项选项卡的标签ID
  3. 鉴于PowerPivot越来越普遍(特别是在Excel 2013中),此选项卡的tabID是什么?

这是一个很棒的问题,关于使用第三方function区的文档或例子很less。 我做了很多挖掘,并可以帮助你大部分你想要的。 我会回答你的问题有点不符合,但是这里。

3)PowerPivot插件的选项卡标识是一个限定符Id(所以必须与idQ一起使用)并且是tabGemini 。 您必须在名称空间中使用它: Microsoft.AnalysisServices.Modeler.FieldList 。 您可以通过向模式添加一个名称空间来检查:

xmlns:x1="Microsoft.AnalysisServices.Modeler.FieldList"

然后在声明选项卡的ID时,使用以下内容在PowerPivot选项卡之前插入选项卡:

insertBeforeQ="x1:tabGemini"

2)我很难findPowerPivot的标签ID,因为它是一个VSTO COM插件,所以你不能像使用.xlam文件一样访问XML。 答案很简单,但您需要Office 2010或更高版本。 随着Excel打开,你也感兴趣的插件,打开文件菜单,然后select。 select自定义function区,然后在顶部窗口的右侧select自定义function区:主要选项卡。 现在取消选中你感兴趣的插件,然后点击导入/导出导出XML模式。 在文本编辑器中打开这个文件,你可以看到他们是如何声明他们的标签ID的。

1)我认为使用getVisiblecallback会遇到的麻烦是,无论如何在用户加载加载项后,如何标记XML,它将覆盖您所做的任何事情。 以下是来自Fluentfunction区的开发人员常见问题(http://msdn.microsoft.com/en-us/library/office/aa722523%28v=office.12%29.aspx#a16c7df5-93f3-4920-baa8-7b7290794c15_FAQ

当两个加载项尝试重新使用相同的内置控件时会发生什么? 试图重新使用控件的最后一个加载项成为活动加载项。

现在我还没有比这更进一步,但是如果你可以导入/导出这个电路板模式到Office中,那么如果你能find这个导入到哪里,也许你可以使用文件脚本对象在VBA中手动覆盖它。 显然只有当它被存储为文本。 一个远射,但值得进一步看? 祝你好运!

PowerPivot选项卡是一个COM加载项。 要查看它和其他COM加载项的progID,请使用:

 Sub ListCOMAddins() Dim lngRow As Long, objCOMAddin As COMAddIn lngRow = 1 With ActiveSheet For Each objCOMAddin In Application.COMAddIns .Cells(lngRow, "A").Value = objCOMAddin.Description .Cells(lngRow, "B").Value = objCOMAddin.Connect .Cells(lngRow, "C").Value = objCOMAddin.progID lngRow = lngRow + 1 Next objCOMAddin End With End Sub` 

在我的情况下,PowerPivot选项卡的progID是“Microsoft.AnalysisServices.Modeler.FieldList”。 所以要closures标签使用:

 Private Sub Workbook_Open() Application.COMAddIns("Microsoft.AnalysisServices.Modeler.FieldList").Connect = False End Sub