Creating custom Ribbons

What is a ribbon?

It’s the new user interface that centralizes the commands from Access 2007/2010/2013/2016 and replaced the previous versions main menu and toolbar.

The large rectangular bar, on the top is known as the Office Fluent Ribbon.   It contains the Title bar, Office button (Access 2007), Backstage(2010, 2013 and 2016), Quick Access Toolbar and the Tabs.

Usando Access


We can create customized ribbons to the Application, providing a great quality appearance and navigation.   This will be the main focus of the Video class, which is to teach you how to customize and configure the Office Fluent Ribbon, in a way that your application gets a professional appearance and is protected against unwanted changes.

You can see an example of a Ribbon completely customized as a database:

Usando Access


Does the Access have an wizard to create the ribbons?

Microsoft launched the Access 2007 without an wizard for this, forcing everyone to know something about XML, which is the language used to create the Ribbons.

Access 2010, Access 2013 and Access 2016 comes with an assistant, with the main objective to customize ribbons for your Access and not for your project.

What you must know about XML?

XML and HTML are similar, being the main similarity the use of Tags (key-words and attributes).    Each tag consists of two parts: one that opens, and one that closes.

Example: <open tag> ... </close tag>

Some controls were designed by Microsoft to customize the Office Fluent Ribbon. It has commands to create the XML architecture adopted, change Access configurations and create the ribbons.

Each command has to be placed in the appropriate spot in the architecture, so it can be translated the proper way.

Pay attention to the architecture presented below, so you must start getting used to it:

Usando Access


Now, take a look at the image below with the tags distribution and its respective commands:

Usando Access


Take a look at the structure without the graphic representation:

<customUI xmlns="">

<ribbon startFromScratch="true">
   <qat><documentControls> ... </documentControls></qat>

   <officeMenu> ... </officeMenu> 'Access 2007

   <backstage> ... <backstage> 'Access 2010, Access 2013 and Access 2016


Each command has its attributes to be configured.   As an example, in the command <button> we can choose its size, subtitle, image, make it invisible, turn it off, and others.  One of the obligatory attributes, in some commands, is the id, which is an exclusive identification that we must give to the command, to be identified, for example, when we click on it to execute an action.

Take a look at the XML below with these attributes, in red, in some tags:

<customUI xmlns="">

<ribbon startFromScratch="true">
   <qat><documentControls> ... </documentControls></qat>

   <officeMenu> ... </officeMenu>

  <tab id = "tbMain" label = "Main">
    <group id = "grSeveral" label = "Several">
     <button id = "btSched" imageMso = "StartAfterPrevious" label = "Schedule"/>
     <button idMso = "Paste"/>
   <backstage> ... <backstage> 


We can also use the commands and images from Access itself. These commands are loaded by the attribute idMso and the images by the attribute imageMso.    The extension MSO refers to Microsoft Office.

The result:

Usando Access


An wizard for you to study and design the ribbons

I made an wizard for Access, called MontaRibbons, with everything that is necessary for the development and configuration of ribbons. With this wizard you will be able to create ribbons in some minutes and in an easy way. You will see in my Video classes that it has a great potential as a learning tool and it won’t be necessary to have any knowledge about XML.

Look at the image from MontaRibbons below – while you edit the XML, you will see the results of the ribbon you are developing IMMEDIATELY.

Usando Access


Video class

This video will reinforce the understanding of the XML structure we have shown.   You will see how to disable the Office Fluent Ribbon in Access, creating a customized ambient, and at the end you will see an introduction about making ribbons.





Article and Video 2

Setting the control splitButton
Setting the control menu
Differences between the controls splitButton and menu
Exporting the ribbons for your applications
How to give functionality to the buttons on the ribbon

Article and Video 3

Changing the controls at runtime, using the attributes gets
How to configure the ribbon for the language exchange
How to hide / disable the buttons on the ribbon, depending on the User logged

Article and Video 4

Using external images (GIF, JPEG e PNG)

Article and Video 5


Images (GIF, JPEG, PNG e ICO) taken from the attachment type field 

Article 6


Article 7

Combobox and Dropdown, in practice


All the details about how to purchase



16 comment(s)

Liam Fitzpatrick   8/3/2012 11:59:33 PM

This has been the most helpful,a nd clearest explanation yet for a beginner on Custom Ribbons ( could you state where and how 'objRibbon' is declared ) I am getting an error. Otherwise it works perfectly. Thank you.

Avelino Sampaio   8/4/2012 10:09:21 AM


Activate the reference "Microsoft Office 12.0 (or 14.0) Object Library", as Article 2

Use the global module to declare the variable objRibbon, according to article 3

Report the error you are getting.

Ari   12/18/2012 4:56:33 PM

Excellent vídeo!

Easy tool to use.

Hoss   5/17/2013 6:48:58 AM

hi.. thanks for your program.but when i load the program Monta Ribbons v.4.0, i get this error :
"The expression on open you enterd as the event property setting prouduced the following error: A poroblem while montaRibbons v.4.0 was communicating with the OLE server or ActiveX Control.
* The expression may not result in the name of macro,the name of a user-defined function,or [Event Procedure].
*There may have been an error evaluating function,event,or macro."
This error occurs when an event has failed to run because the location of the logic for the event cannot be evaluated. For example, if the OnOpen property of a form is set to =[Field], this error occurs because a macro or event name is expected to run when the event occurs.

what can i do with this error.
thanks alot.

Avelino Sampaio   5/20/2013 7:36:49 AM


Please contact us by email: avelino(dot)ribbon01(dot) com

I need to collect some information so that I can identify the possible accuses this failure.

Roberto   3/4/2014 7:30:08 AM

I've tried manually to modify QAT and Menus on an Access 2007 DB; but it seems impossible to modify both by USysRibbons table: if I try Access gives me an error on db opening and starts with standard interface

Avelino Sampaio   3/5/2014 5:01:14 AM

Hi Roberto,

Enable the error detection that you will find the cause.

File button > Options > Client Settings > Check “Show add-in user interface errors”


Brian   4/24/2014 2:08:01 PM

The program is a great tool, but it'd be helpful if the videos were in the 2010 version and the commands, i.e. Inicio, Criar, Dados Externos, Ferramentas de Banco de Dados, were in English. For the most part I am able to "translate" them but there should really be an English version for those of us who only speak/read/write in English.

I think it'd make the tutorials easier to understand.

Charles   9/20/2014 1:41:18 PM

Excellent builder! I created all my ribbons in the 2010 version.

My application now has a professional navigation!

Great investment!

David Flin   1/6/2016 4:17:11 AM

I have downloaded the evaluation version, but when I try to start from the menu I get the error "The database is in an unrecognized format". I am using MS Access 2013.

Avelino Sampaio   1/6/2016 9:42:17 PM


Your Office 2013 is 32 or 64 bit? It is updated with SP1 package?

Raj   6/19/2016 11:30:53 PM

I am not able to run your application for Office 2013, Do you have suitable version for office 2013! Your Help will be Appreciated! Thank you!

Avelino Sampaio   6/20/2016 5:35:08 AM


Your Office 2013 is 32 or 64 bit? It is updated with SP1 package? Please pass your e-mail by accessing contact section.

I wait

access ribon   11/28/2019 1:58:19 AM

gravity   11/28/2019 1:58:51 AM

access ribbon

TheBigEasy   12/4/2019 1:07:35 PM

Hi Avelino,

Per your instructions, I wanted to download and try MontaRibbons before purchasing. I am running Office Professional 2019 32-bit. After install, I go to run the MontaRibbons program and I'm getting an error stating that it can't locate the Atributos_be.accdb file. After looking in the install folder, that file is DEFINITELY in there along w/ MontaRibbons_be & v7ed. I also tried to add-in the v7ed file, via the Access Add-in Manager, and I'm getting an error stating that the file is missing a USysRegInfo table.

Any help would be appreciated!

Send your comment: