Search code examples
c#outlookvstooutlook-addinribbon

Is it possible to have more than one custom tab for the office ribbon?


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>

Solution

  • 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();
    }