How to make ribbon XML Fluent UI tabs appear in MSO app under ribbon customisation

I would like the tabs that I create in my XML definition of a ribbon in my add-in appear in the backstage of the Office application as shown in this screenshot of the Options / Customize Ribbon for the MSO app:

Ribbon Customisation in Backstage
I have tried adding a custom namespace to the XML and used the idQ element to define shareable tabs but it doesn't help.

<customUI onLoad="onLoadRibbonBP" xmlns="" xmlns:yp="youPresent">
  <ribbon startFromScratch="false">
      <tab idQ="yp:TabTest" label="TEST"/>

Open in new window

How can I achieve this? The backstage options screenshot above seems to grab all Microsoft tabs but there is also one from iSpring (albeit a COM add-in) so is it technically possible?
LVL 15
Jamie GarrochSenior Technical Consultant at BrightCarbonAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

The easiest way is to create a CustomUI from the backstage and then look inside the XML...
I also wrote an more detailed article about custom ribbons.
I guess what you missed there is a group element.

The article is more how to create them dynamically via VBA, but you see a lot of elements there you can use in a CustomUI.
Jamie GarrochSenior Technical Consultant at BrightCarbonAuthor Commented:
You're right, I missed the group element when writing this question but it is there in my  actual XML and I am unable to see the tab under options.  Are you able to see a custom tab from your XML in the backstage optios as illustrated on the screenshot above?
Yes, I can see them...
But what you see on the first level is the group. (Otptions)
The macro in my article also mixes user defined changes and  automatic generated items together.
As I remember we played around a bit with the ID / IDQ to get it running as needed.
In the macro you see we used id= , not idq.
Big Business Goals? Which KPIs Will Help You

The most successful MSPs rely on metrics – known as key performance indicators (KPIs) – for making informed decisions that help their businesses thrive, rather than just survive. This eBook provides an overview of the most important KPIs used by top MSPs.

Jamie GarrochSenior Technical Consultant at BrightCarbonAuthor Commented:
Interesting article. I guess the part I am unfamiliar with is your use of xmlns:
<mso:customUI xmlns:x2="""

Open in new window

And then the subsequent control definitions:
<mso:tab id="MyMenuItemIdentifier" label="MyMenuLabel" insertBeforeQ="mso:TabFormat">

Open in new window

I am used to seeing the basic use of this:
<customUI xmlns="">

Open in new window

Would you be able to expand on that part?
I guess the specification line is not so important, in the second example you see, they are even missing.

What may be important is the mso:qat section, this is the quick access toolbar. Even it is empty like in the first example.

The first example is just, what the macro produced.
The second example is a wild combination, so partly done manually, and enhanced by the macro.
This just shows, how it should look like to work.

How you do it at the end doesn't care, I decided for the macro solution not to destroy an existing user ribbon bar. It is just more flexible.

The blacked out parts are just one name....
Jamie GarrochSenior Technical Consultant at BrightCarbonAuthor Commented:
OK. I made a new test by creating a custom UI in Options / Customize Ribbon to add one tab with one group with one button and then saved the customisation. This is what I created:

PowerPoint ribbon customisation via Backstage / Options
I then opened the customisation XML that PowerPoint created to find this:

<mso:cmd app="PowerPoint" dt="0" />
<mso:customUI xmlns:mso="">
		<mso:tab id="mso_c3.5F20904" label="TEST TAB" insertBeforeQ="mso:TabInsert">
			<mso:group id="mso_c4.5F20913" label="TEST GROUP" autoScale="true">
				<mso:control idQ="mso:FileSave" visible="true"/>

Open in new window

Next, I created a new blank presentation file "xlmn testing.pptx" and added the above XML using the Custom UI Editor For Microsoft Office. It complained about the first line and the fact that qat is only available with startFromScrath so I commented out those two lines:

<!-- <mso:cmd app="PowerPoint" dt="0" /> -->
<mso:customUI xmlns:mso="">
	<!-- <mso:qat/> -->
		<mso:tab id="mso_c3.5F20904" label="TEST TAB" insertBeforeQ="mso:TabInsert">
			<mso:group id="mso_c4.5F20913" label="TEST GROUP" autoScale="true">
				<mso:control idQ="mso:FileSave" visible="true"/>

Open in new window

I then reopened the pptx file in PowerPoint and can see my test tab.

Finally, when I go into the backstage to try to add my tab to a new customisation, I cannot see the TEST TAB in the list:

Ribbon tab in PPTX doesn't appear in backstage options
There are two possibilities to change the ribbon.
The XML file and via code inside an Add in.
If you use a XML file, it is static, that means the file is loaded when the application is started. If you change something inside the XML, you have to restart the application to make it effective.
The startFromScrath has the same reason.

The application is capable to change it on the fly (also add Ins can do it, but not a marco) but changes may be also written back to the XML if you close the application.
The XML is loaded first and the an add in can involve and expand it.

You see in my complex ribbon, that there are structured under qat, They are not written by the macro but added by the application.

Also you see in my example, that I do not use IDQ, also not control but button (just not expanded)

I will create you a new example tomorrow.

By the way, the CustomUI Editor I only used for viewing and finding Objects, never for creating ribbons, as it never worked as expected. The XML you should create yourself.
Jamie GarrochSenior Technical Consultant at BrightCarbonAuthor Commented:
Thanks Bembi for the additional comments. All of that is understood. I am however unable to get my ribbon tab and groups customisation (I am not using the <qat> section of the XML but the <ribbon> <tabs> <tab> <group> <button> branch) in a way that allows a user to add the groups from my add-in to a custom group that they create in the backstage. If you have an example of how to do that, I would be very grateful :-)

BTW, when using the Custom UI Editor, I do create the XML manually myself as it has no built in intelligence for assisting with this. It's a kind of glorified text editor which makes it easy to inject XML into the ZIP archives of MSO documents.
I will create another example....
The reason why I made this by a macro was more or less the same issue.
The point is just that you have to deal with custom XML (for your own purpose) and the possible user changes made before or after your implementation.

The macro creates a complete new XML file if it doen't exist (including the qat section). If there was a user change before, I just inserted some sections into the existing file.

If the XML is not as expected or incomplete, you see some issues like not visible to the user and even you are possibly not able anymore to change the quick launch bar (qat).

I will create some examples tomorrow  before and after, which should explain, how is has to look like...
Created the XML from empty with the Macro
Created the XML from empty with the user interface
Created the XML from the user with the Macro

If you want to use the XML files, save them without the ending and without the number under
Name is only MSProject.officeUI

Also I remember an issue with the file format. They have ANSI format, not Unicode / UTF-8
But now I can not reproduce it anymore, so maybe a issue with an earlier version.
There were several corrections in the last 6 month in combination with XML files, not sure if also the ribbon file was affected, but possible.
Jamie GarrochSenior Technical Consultant at BrightCarbonAuthor Commented:
Firstly Bembi, I would like to say a big thank you for your continued attention to this question!

So, I took your first XML example and put it into a PowerPoint PPTX file (no macro code - just UI).

I had to make two changes:

1. Set the tab visible = true
2. Comment out the qat part (it is not used anyway as it is self closing without any other nodes or attributes)

This is the exact code:

PowerPoint ribbon test XML
I then see the tab, group and button in PowerPoint when I open the file:

PowerPoint ribbon test tab, group and button
All ok so far. But when I go into Options / Customize Ribbon, the tab is not shown in the left hand list of tabs:

Ribbon group not appearing in Options / Customize Ribbon
The left hand list is where I want to see it because the user request is to create their own custom tab in the right hand list and add groups from my add-in from the left, to the right.

Here is the PowerPoint file:


In the screenshot above you can see "iSpring Converter 6" (which is another 3rd party add-in) and it appears in the left list so this must be possible.
I just checked it with Power Point.....
The procedure is the same, the file looks equal...
The major difference is, that the PowerPoint.officeUI shows up beside the other TestMacro tab, which was in the file before...
In the Options section, the new created item is visible, the TestMacro not.

It looks like that the definition for the ribbon is inside the file....
Document specific items
Also you have AddIns there, they should not involve as long as they create something on the fly...

You may also open the AddIn folder in the Customize Ribbon Option.

When I run the compatibility check, it tells me that document-specific customizations are present.
Just wondering, why the toolbar is now document specific.
Ribbons can be associated with the file itself, but then they will not show up.
The Customize Ribbon Option show items, which are either from the application or stored as a CustomUI file (xml) and these settings are for the application in general.

NOTE: Do not import the XML file, just leave the CustomUI in the office folder.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Martin LissOlder than dirtCommented:
This question has been classified as abandoned and is closed as part of the Cleanup Program. See the recommendation for more details.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Office

From novice to tech pro — start learning today.