-->

Is it possible to have more than one custom tab fo

2020-07-09 08:58发布

问题:

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.