问题
I can not find any documentation to verify this or any working examples
I want to achieve something like this xml below, but I think this really is not possible.
<customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2010/01/customui">
<ribbon>
<tabs>
<tab idMso="TabAddIns" label="Ribbon1">
</tab>
<tab idMso="TabAddIns" label="Ribbon2">
</tab>
</tabs>
</ribbon>
</customUI>
回答1:
You can have multiple tabs, if you are using exiting tabs then set idMso="exiting tabids"
Existing tab ids should be valid ids which can be found here
If you are using your own custom tabs then use id="customtab1"
instead of idMso
customtab1 - can be any valid strings
EDITED
The below ribbon xml worked
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
<ribbon>
<tabs>
<tab idMso="TabAddIns" label="Ribbon1">
<group id="MyGroup"
label="My Group">
</group>
</tab>
<tab id="CustomAddin" label="Ribbon2">
<group id="CustomAddinGroup"
label="My Group">
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Try using Ribbon designer and convert to XML and make sure you add the below code in ThisAddin.cs file
protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
return new Ribbon1();
}
回答2:
Change idMso
for id
and give your tabs a custom name.
<customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2010/01/customui">
<ribbon>
<tabs>
<tab id="Tab1" label="Ribbon1">
</tab>
<tab id="Tab2" label="Ribbon2">
</tab>
</tabs>
</ribbon>
</customUI>
idMso
is used to refer to Microsoft Objects that already exists within the application hosting the ribbon.
回答3:
You cannot have two tabs with the same id (idMso="TabAddIns"). Make sure the ids are unique.
来源:https://stackoverflow.com/questions/18370321/is-it-possible-to-have-more-than-one-custom-tab-for-the-office-ribbon