我正在修改Excel文件的色带,隐藏所有默认和上下文选项卡,但只显示我自己的选项卡。但是,一旦安装了带有自己的选项卡的任何加载项,这些选项卡仍会显示,因为我不知道如何解决它们。
我知道您可以使用<ribbon startFromScratch="true">
删除所有标签,但我需要将它们留在原位(我实际上使用了一个getVisible回调来隐藏它们,但是将它们显示给管理员)。
所以,问题如下:
答案 0 :(得分:3)
这是一个很棒的问题,关于使用第三方色带的文档或示例很少。我已经做了很多挖掘工作,可以帮助你完成你想要的大部分工作。我会回答你的问题,但是问题稍微有点不合适了。
3)PowerPivot插件的标签ID是限定符ID(因此必须与idQ一起使用)并且为tabGemini
。您必须在名称空间中使用它:Microsoft.AnalysisServices.Modeler.FieldList
。
您可以通过向架构添加命名空间来检查:
xmlns:x1="Microsoft.AnalysisServices.Modeler.FieldList"
然后在声明标签的ID时,使用以下内容在PowerPivot标签前插入标签:
insertBeforeQ="x1:tabGemini"
2)我很难找到PowerPivot的标签ID,因为它是一个VSTO COM插件,所以你不能像使用.xlam文件一样访问XML。答案很简单,但您需要Office 2010或更高版本。打开Excel并打开您感兴趣的插件,转到“文件”菜单,然后选择“选项”。选择“自定义功能区”,然后在顶部窗口的右侧选择“自定义功能区:主选项卡”。现在取消选中您感兴趣的插件,然后取消选中导入/导出,以导出XML架构。在文本编辑器中打开此文件,您可以看到他们如何声明他们的标签ID。
1)我认为你在getVisible回调中遇到的麻烦是,无论你如何标记你的XML,如果有人在你之后加载了一个加载项,它就会覆盖你所做的任何事情&# 39;完成了。以下内容来自Fluent Ribbon for Developers FAQ(http://msdn.microsoft.com/en-us/library/office/aa722523%28v=office.12%29.aspx#a16c7df5-93f3-4920-baa8-7b7290794c15_FAQ )
当两个加载项尝试重新使用相同的内置控件时会发生什么? 尝试重新调整控件的最后一个加载项成为活动加载项。
现在我还没有比这更进一步,但是如果你可以将这个电路板架构导入/导出到Office中,那么如果你能找到这个导入的地方,也许你可以手动覆盖它VBA使用的是filescripting对象。显然只有它被存储为文本。有点远,但值得进一步看?祝你好运!
答案 1 :(得分:1)
PowerPivot选项卡是COM加载项。要查看它的progID和其他COM加载项,请使用:
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”。所以要关闭标签使用:
Private Sub Workbook_Open()
Application.COMAddIns("Microsoft.AnalysisServices.Modeler.FieldList").Connect = False
End Sub