Microsoft Excel

Ron de Bruin
Excel Automation

Microsoft MVP Program

Change the Ribbon in Mac Excel 2016 and up

Note : Update Mac Office first and be sure it is 15.17 or higher, in the 15.17 update Ribbon customization via Ribbon XML is enabled by default for all customers.

Note: If you are a Excel for Windows user start here : Change the Ribbon in Excel 2007 and up

 

Things we must do and understand before we start

Important : The easiest way to insert RibbonX in a Excel file is to do it on a Windows machine. I suggest that if you want to develop custom Ribbons you develop in Windows and then test it on the Mac.

Note :The information below assume you develop on a Windows machine

If you want to insert RibbonX into a Excel 2007 and up workbook to change the Ribbon, then I suggest you download and install the free Office RibbonX Editor created by Fernando Andreu to make this a lot easier : https://github.com/fernandreu/office-ribbonx-editor/releases/latest

Before Fernando Andreu released this tool we used a tool named Custom UI Editor created by Trang Luu, you can download it here if you want to test this very old tool, but I suggest that you use the new tool that Fernando Andreu created that is up to date.

The Office RibbonX Editor gives you an option to insert a customUI.xml file in your Excel workbook that loads when you open the file in Excel 2007and up and/or a customUI14.xml file that only loads when you open the Excel workbook in Excel 2010 and up. What, files that are inside a Excel file?.
Excel 2007 and up files are really zip files so if you change the extension to zip and open the file in your zip program you see that there are a few folders and a file inside the zip. Thanks to the Office RibbonX Editor we not have to do all this to add or edit the customUI.xml or CustomUI14.xml file inside your Excel file.

Note: You will notice that Excel versions 2010 and up use the same xml file named customUI14.xml

When you not work with things that are added in Excel 2010 and up (like Backstage View for example), then you can only use the Office 2007 Custom UI Part option to add your RibbonX, it will load the RibbonX from this file when you open the Excel file in Excel 2007 and up. But if you open the Excel file in Excel 2010 and up and there is also a customUI14.xml file it will load only this file.

Note: It is not possible to insert RibbonX into Excel 97-2003(xls) files.

 

Open the Office RibbonX Editor

Open : Open the Excel file that you want to edit (Be sure it is not open in Excel)
Save : Save the RibbonX in the file that you have open in the UI editor
            (not possible to save when the file is open in Excel)
Insert Icons : Insert your own icons in the file (icons will be saved in the file)
Validate : Validate your RibbonX so you are sure that there are no typos
Generate Callbacks : This will create macros(callbacks) for each onAction you have in
the RibbonX. Select all callbacks and copy them in a normal module in your workbook.
Reload on Save : This button have no use if you not have the file open in Excel when you open it in the editor, for more information about this button read the info on the download page.

When you open a Excel file in the Office RibbonX Editor you can right click on the file name and choose :
Office 2007 Custom UI Part Or use Office 2010+ Custom UI Part
Or you can use the Insert menu to choose one of the two options.

It creates the customUI14.xml file if you choose Office 2010+ Custom UI Part and the customUI.xml file if you choose Office 2007 Custom UI Part. After you choose one option or both, you can enter or paste your RibbonX in the correct part.

 

Let's make an Example for Excel 2007-2016 (Win and Mac)

In this basic example we add RibbonX to a file that create two buttons in a new group named My Group on the Home tab when you open your file in Excel 2007-2016. Because we not use something new for 2010-2016 we only have to add the RibbonX to the customUI.xml file ("Office 2007 Custom UI Part") .

1: Open a new workbook and save it as Book1.xlsm (Excel Macro-Enabled workbook)
2: Close the workbook
3: Open Book1.xlsm in the Office RibbonX Editor
4: Right click on the File name in the Office RibbonX Editor or use the Insert menu
5: Choose "Office 2007 Custom UI Part" to create the customUI.xml file
6: Copy/Paste the RibbonX below in the right window

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
  <ribbon>
    <tabs>

      <tab idMso="TabHome" >
        <group id="customGroup1" label="My Group" insertAfterMso="GroupEditingExcel">
          <button id="customButton1" label="Info" size="large" onAction="Macro1" imageMso="AcceptInvitation"  />
          <button id="customButton2" label="Help" size="large" onAction="Macro2" imageMso="FindDialog"   />
        </group>
      </tab>
 
    </tabs>
  </ribbon>
</customUI>

7: Save your changes in the Office RibbonX Editor (click on the Save button)
8: Close the Editor
9: Open the File in Excel
10: Alt F11
11: Insert Module
12: Copy the two macros below in the Module

Sub Macro1(control As IRibbonControl)
    MsgBox "This is the first button in the group"
End Sub

Sub Macro2(control As IRibbonControl)
    MsgBox "This is the second button in the group"
End Sub

13: Click on the Save button in the VBA editor
14: Use Alt q to close the VBA editor
15: Test the workbook in 2007 and/or in 2010-2016

Note: If you want to avoid the compile error on the macro callbacks when you open the file in Excel 2011(this not compile in 2011 : control As IRibbonControl), you can add the two macros in between the two following lines in the code module.

#If MAC_OFFICE_VERSION >= 15 Then

Put your macro callbacks here

#End If

 

Information and Example files for Mac Excel

Custom Ribbon Example files

Download a few basic example files below (4 files), remember that there are problems with a few idMso's on this moment, the Mac Excel team is working hard to fix them. for example you can't add every built-in group to a custom ribbon on this moment.

Download example files

Will upload more example files soon to this page

 

Tab and group idMso's of the Mac Excel Ribbon

Visit this page for more information:

Tab and Group idMso's of the Mac Excel 2016 and up Ribbon

 

Control idMso's of the Mac Excel Ribbon

Visit this page for more information:

Control idMso's of the Mac Excel 2016 and up Ribbon

 

imageMso's that you can use in Mac Office

Visit this page for more information :

imageMso's for Mac Office 2016 and up