RibbonCustomizer™
Customize your Office 2007 Ribbon (Office Fluent™)with only a few mouse clicks! Works with Microsoft® Access™, Excel®, Outlook®, PowerPoint® and Word 2007.

Buy for $29.99

Download free Starter Edition

Subscribe | Subscribe by Email |

Categories

Archive


imageMso list

July 17th, 2007 by Patrick Schmid

A developer can use Office 2007 icons in RibbonX via the imageMso attribute. To do so, she needs to only specify the idMso of the control which has the desired icon. Unfortunately, this is not as easy as it sounds, because any idMso available in any of the five ribbon applications (Access, Excel, Outlook, PowerPoint and Word) can be used irrespective of the application. That means, an idMso from an Excel command can be used in Word as imageMso.

To make this easier, I created a unique imageMso list. This list was created by first finding all unique idMso’s across all ribbons (some 3,400 idMso’s), and then removing all the idMso’s that didn’t have their own icons, as well as all duplicates. The list differentiates between unique 16×16 and 32×32 icons, as well as unique pairs of 16×16 and 32×32 icons.

Download the imageMso list (Excel 2007 format).

Starting with RibbonX

January 2nd, 2007 by Patrick Schmid

If you haven’t read my conceptual overview of the Office 2007 UI Customization Model, now would be a very good time to do so. As explained in that overview, customizing the Office 2007 UI requires three distinct steps:

  1. RibbonX code
  2. Loading the RibbonX code into an Office application
  3. Optionally handling callbacks

The RibbonX code is rather similar for all Office applications and independent of the way it is loaded into an Office application. Discussions of RibbonX itself are therefore normally applicable to all five ribbon programs and all ways of loading RibbonX and handling callbacks.

Loading and handling callbacks though is very application-specific and mechanism-specific. The following will give you an overview of how RibbonX can be loaded into which Office applications.

Access

  • Managed .NET shared add-in (e.g. written in VB.NET or C#)
  • Unmanaged COM add-in (e.g. written in VB6)
  • VBA/database table

Excel, PowerPoint & Word

  • Embedded into OpenXML files (files in the 2007 file formats). This is the only way the Ribbon can be customized in conjunction with VBA
  • Managed .NET shared add-in (e.g. written in VB.NET or C#)
  • Managed VSTO 2005 SE add-in
  • Unmanaged COM add-in (e.g. written in VB6)

Outlook

  • Managed .NET shared add-in (e.g. written in VB.NET or C#)
  • Managed VSTO 2005 SE add-in
  • Unmanaged COM add-in (e.g. written in VB6)

The list is not complete as third-party applications, e.g. my RibbonCustomizer add-in, might also provide RibbonX loading capabilities. As you can see from the list though, loading RibbonX into an Office application might be a bigger hurdle for a lot of people than actually writing RibbonX.

Welcome to my Forums

November 5th, 2006 by Patrick Schmid

I have added forums to my website. Do you have a question about RibbonX? Pop into my forums and ask it.

The main purpose of my forums is to support the upcoming release of RibbonCustomizer. If you have a particular feature request, post it in the forums.

Now go to my forums and be the first one to post!

For other Office 2007 questions, please use the appropriate Microsoft community newsgroup.

Overview of the Office 2007 UI Customization Model

November 1st, 2006 by Patrick Schmid

In my last post on customizing the Office 2007 UI, I spent a lot of time talking about all the customization approaches available to the user via the UI. However, I didn’t spend much time at all talking about RibbonX. Today’s post is going to introduce RibbonX conceptually.

Whether you are a developer or just a user who wants to create templates & documents with a customized Ribbon, there is no way around RibbonX. If you are a developer, then there is a good chance that you have never encountered any UI programming methodology like this one, except maybe if you did some Java UI programming (you might have encountered it then e.g. in the form of SwiXML). However, most Office and Windows developers are used to specifying a UI directly in code (or having a development environment like Visual Studio do it for them). This is how Office UI development worked until Office 2003 with the CommandBars model. The new RibbonX model however does not have an associated object model, nor is the UI specified in code. The following SmartArt gives an overview of the new Customization Model.


RibbonX Code

RibbonX code is XML code following an XML Schema provided by Microsoft. According to Wikipedia, “XML is a way of describing data and an XML file can contain the data too”. For the purposes of customizing the Office Ribbon UI, the XML describes everything. All the information about size, location, visibility, label, ID, etc that developers are accustomed to specifying in code are specified in the RibbonX XML format. Users, who up until now never had to worry about any of this, are going to have to learn some of it in order to be able to customize the new Ribbon UI.

If you are totally unfamiliar with XML or its relative HTML, take a look at this XML Tutorial.

Ribbon Application

The Ribbon Application of your choice (Access, Excel, Outlook, PowerPoint or Word) will read your RibbonX code and apply everything you specified in there to its own UI. Your RibbonX code is either provided via a document or template, or a COM add-in. Embedding the RibbonX code into an Office 2007 file format (OpenXML) document or template is the method of choice for users and VBA developers.

A big catch for developers with this new model is that there is only one opportunity to provide the RibbonX code. That means, an add-in can load Ribbon customizations once, normally at start-up. Modifying the Ribbon during the execution of the add-in is only possible in a limited way. That means, the UI a developer can specify is mostly static. When your add-in is unloaded, or the document/template with the RibbonX code closed, all the UI modifications you provided via RibbonX will be removed as well. This is contrary to the CommandBars model of previous Office versions, where developers had to ensure that all their UI customizations were properly removed.

Add-In

If you only want to provide a customized Ribbon for a document or template, then you are only going to be using features provided by Microsoft and this last section is of no relevance to you. If you however want to add your own functionality, e.g. because you are developing an add-in, and have that functionality accessible via the Ribbon, then you are going to have to implements “callbacks” in VBA or your COM add-in.

In the RibbonX code, you specify these callbacks. Callbacks are functions in your add-in code that Office calls under certain conditions. A callback shares many similarities with an event, but is not the same. For example, you can specify a callback that is called by Office when it wants to know whether a particular control is visible or not. Or, more event-like, when a user clicks a custom button you added to the Ribbon, the associated callback for this action is executed. You could also specify a callback to have Office get the label for a control.

RibbonCustomizer: First Alpha version

August 1st, 2006 by Patrick Schmid

Today, I am releasing the first alpha version of my RibbonCustomizer add-in. As it is alpha, it still has bugs. Some of which are listed as known issues. For a discussion of this add-in, see my RibbonCustomizer overview post.
In this alpha version, you can use it to swap groups among tabs, create your own tabs and remove any existing MS group or tab. In addition to that, you can also load any RibbonX XML file.

The RibbonCustomizer add-in will appear on the View tab in Excel, PowerPoint and Word, but on the Add-in tab in Access and Outlook. In its current form, it doesn’t show you actual labels for tabs and groups (the labels you see normally in the Ribbon UI), but rather the internal Microsoft IDs (the idMso’s of RibbonX). This is a limitation only for this release and will be different in the final version. In Excel, you’ll actually see labels for some tabs & groups. The main feature of the add-in is to provide you with a UI to customize the ribbon.
In addition to that, you can use it to load any arbitray RibbonX file into any of the ribbon applications. This is not only useful for Office users who want a specific customization currently not supported yet, but also for developers who want to see what a particular RibbonX file will look like when loaded.

The RibbonX package file format is not an Office file format. It is rather a file format used by my add-in. With a normal RibbonX XML file, it is not possible to ensure that the RibbonX is actually being loaded into the right application. The RibbonX package file includes a check to ensure that users can only use it in the correct application. I see its usefuleness in distributing customizations via websites. The format is currently undocumented and still subject to change.

This is an alpha version. Therefore, please do not install it in a production environment. Please make sure to follow the installation instructions.

You can download it from my Office 2007 customization page.

Please post all issues and bugs as comments to this post.

Next Page »