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


Official Story on User Customization

June 27th, 2006 by Patrick Schmid

Archival Notice: This post is no longer current and has been moved to the archive. Please read the new post replacing this one. Images and links in this post are not guaranteed to work.


Jensen posted a very good post today on the UI blog telling the official story on user customization. For readers of this blog, the story shouldn’t be too much a surprise, but he fills in many details and gives a good overview of why Office 2007 ended up with the current customization model. He also announced a few new things in post-Beta 2:

  • “ability to query for the icon of a command”
  • “execute it [a command] directly from code”

I will be eagerly looking forward to those changes!

The personal highlight of my day though was this sentence: “Patrick Schmid has illustrated many of the techniques necessary to make this work on his blog”, complete with a link back to my website.

Thank you Jensen for that and for this great post!

Developer: Overview of the new UI customization model (”RibbonX”)

May 31st, 2006 by Patrick Schmid

Archival Notice: This post is no longer current and has been moved to the archive. Please read the new post replacing this one. Images and links in this post are not guaranteed to work.


After highlighting in a previous post the lack of user customization, it is time to look at customization from a developer’s point of view. If you are interested in background reading on the topic or want a look ahead, read the UI blog on developer topics.Office 2007’s Ribbon opens a new chapter for all Office and Windows developers. Except if you have done some Java UI development, you probably will have never encountered the UI programming methodology adopted by Office 2007. Most Office and Windows developers are used to programming the User Interface directly in their code: Whether it is Office, ATL, MFC or .NET’s Windows Forms, a developer always works with an object model that builds or modifies the user interface. For the Ribbon, there is no object model and the UI is not modified/specified with code.

The following SmartArt graphic outlines the process in which the Ribbon UI can be customized:

I admit the graphic looks rather simplistic, but I had trouble with creating a more complex one with graphics. Let me look at each of these steps in detail.

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 code 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. If you are totally unfamiliar with XML or its “relative” HTML, take a look at this XML Tutorial. I will showcase the particular syntax of RibbonX in subsequent posts and also show lots of examples.

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. A big catch with this is that you only get ONE chance to provide your RibbonX code. That means contrary to the usual Office and Windows UI development, the UI you can specify is rather static during the runtime of your add-in. This is a serious limitation compared to add-in development for previous Office versions. Some dynamic functionality is possible though and I will explore these in subsequent posts. When your add-in is unloaded, all the UI modifications you provided via RibbonX will be removed as well. In previous Office versions, a developer had to make sure to remove these things themselves, but Office 2007 takes care of that now.

The last piece in the new customization model is the actual add-in. In the RibbonX code, you specify “callbacks”. Callbacks are functions in your add-in code that Office calls under certain conditions. 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. You could also specify a callback to have Office get the label for a control. Callbacks are the most important building block for dynamic behavior and adjustment to different localities.

My next posts will show you how to add a “Hello World” button to the first tab of a Ribbon application and show a message box with “Hello World” when you click on it. Each post will focus on different programming languages and situations from which you can do this.

Subscribing to this blog via RSS from Outlook 2007 Beta 2

May 26th, 2006 by Patrick Schmid

Archival Notice: This post is no longer current and has been moved to the archive. Images and links in this post are not guaranteed to work.


I managed to fix my RSS issues. You can now use the links on the bottom of this page to subscribe to this blog via RSS.

If you are using Outlook 2007 Beta 2, the links won’t work (I presume due to a bug). You need to manually add the feeds:

  • Blog: http://pschmid.net/blog/feed/
  • Comments: http://pschmid.net/blog/comments/feed/

I hope everyone is now able to follow this blog via RSS. If you are still having issues, please post a comment to this post and I’ll get it fixed.

User: Customize Office 2007 Ribbon Applications

May 24th, 2006 by patrick

Archival Notice: This post is no longer current and has been moved to the archive. Please read the new post replacing this one. Images and links in this post are not guaranteed to work.


Early on in the beta of Office 2007, someone from Microsoft labeled the user customization features of Office 2003 as the “DeLorean of customization”. Basically anything was possible, including changing icons and labels, moving menus and toolbars to wherever you wanted them, adding buttons to menu and toolbars, etc. There really was not a single item that was not customizable with a few mouse clicks. How does the user customization of the new Office 2007 Ribbon stack up against this?Some might label it as “Volkswagen Beetle”, others might go with a mid-size car, whereas few would label it as a “Mercedes”. No matter which car you want to compare it with, user customization has been greatly diminished with the Office 2007 Ribbon.

Why customize the Office User Interface (UI)?

Many people never customize their Office User Interface (voluntarily). The statistical data Microsoft gathered with Office 2003 shows that only a very small percentage of all 400 million Office users worldwide bothered with customizing their UI. In absolute numbers, probably only a few million people customized it and of those only a few tens of thousands did any serious customization (more than 3 buttons). On the other hand, many people involuntarily “customized” their UI and ended up having trouble finding functionality or even having sufficient workspace for their document, spreadsheet or presentation. Based on this data, it is therefore understandable that Microsoft decided not to outfit the Ribbon with the same anything-is-possible customization features that Office 2003 has. What motivated the tens of thousands of people though who did customize their UI?

  • Faster access:. Be it through adding of a feature that can only be found in the menus to a toolbar, placing a floating toolbar with exactly the buttons needed for a particular repetitive task next to the area in your document you are working on, creating custom toolbars with all commands you need 90% of the time and docking them wherever you want, and many other things, user customization is mainly about speed and efficiency. Less clicks and less distance the mouse cursor has to travel translates directly into a higher productivity.
  • Corporate “branding”: Companies might create their own look for a particular Office application and want all their users to use this same look. This allows them to include custom tools into the UI, but also enforce a standardized UI that every employee is familiar with.
  • Esthetics: Some users just do not like the way the Office UI looks like out of the box and change it.

These three motivations still exist with Office 2007. There are however also two new motivations:

  • Disparity between Microsoft’s organization of the Ribbon and how one works: MS organized the Ribbon in a goal-oriented manner. This organization though will not match how every user works. For example, a user might think of headers and footers in Word as a page layout task, whereas Microsoft thought of it as something a user inserts into a document.
  • Getting the old menu and toolbar layout back: The Ribbon forces every user to start from scratch (again). Every user, no matter how proficient he or she is in earlier Office versions, has to completely relearn where things are in this new UI. Users certainly feel a strong urge to keep what they are used to and not go through the painful task of learning the new UI.

The motivation of getting the familiar back is in my opinion no justification for more advanced user customization abilities in Office 2007: The Ribbon is here to stay! Anyone who does not want to make the change should stay with Office 2003. Trying to customize Office 2007 so that it looks like Office 2003 is not something that will be successful in the long-run. The Office version after 2007 (Office 14) will not only have the Ribbon, but expand it to even more applications. As painful as the switch is to a totally new UI, it is better to make the switch now (or not at all) instead of trying to soften the pain of the switch with wrongly used customization.

What can I customize in the new Office User Interface?

The short answer is, not too much. Microsoft ships Office 2007 only with one customization feature. Everything else you might want to do is unreachable for the normal user with just Office 2007. Here is what you cannot do:

  • You cannot touch the Ribbon itself. All tabs, groups and controls on the Ribbon are out of your reach. There is no way to reorganize items, get rid of some, add others, change labels or icons, resize items, or do anything else.
  • You cannot have more than one toolbar.
  • The only toolbar you get cannot float, nor is there any equivalent to floating menus.
  • You cannot affect the resize behavior of the Ribbon.

The Developer Tab

When you open Excel, PowerPoint or Word for the first time, your Ribbon does not feature a tab labeled “Developer”, as you can see in the following screenshot from Word:

To activate the Developer tab, go into Excel, PowerPoint or Word Options (which you can find in the Office button menu) and select “Show Developer tab in the Ribbon”:

After you have selected this, your Ribbon will now feature the Develop tab which looks in Word like this:

The Quick Access Toolbar (QAT)

The Quick Access Toolbar is the main user customization feature for the Ribbon. It allows you to access any buttons you place on it all the time with just one click. Out of the box, the QAT looks like the following in Word Beta 2 (and all other Ribbon applications as well):

As you can see, it contains save, undo, redo and quick print. If you are curious why the printer looks like it is being electrocuted, check out Jensen Harris’ UI blog. The QAT can either be placed above the ribbon as you saw in the previous screenshot, or below it:

To change the position of the QAT, either click the tiny arrow down symbol all the way on the right on the QAT and select “Place Quick Access Toolbar below the Ribbon” or “Place Quick Access Toolbar above the Ribbon” if it is already below. You can add any control (button) and any group to the QAT, including ones that were added by add-ins. To add an item, right-click on it and choose “Add to Quick Access Toolbar”. To add a group, right-click on the bar with the group label. If you add a button, it will be added as one icon in the QAT. If you add a group, it will be added as a drop-down menu that opens up when you click on it:

If you want to reorder the items on the QAT, introduce separators or add items that are not visible on the Ribbon, you need to open Access, Excel, Outlook, PowerPoint or Word Options (again from the Office button menu), and click on the tab Customization:

You can add 40 items (a group counts as one item) to the QAT. The QAT cannot float, but you can access it fast using keyboard commands:

As you can see in the screenshot though, this quick number keyboard access system does not work for groups (a bug?). If you were to add another button, it would be assigned the number 6, but nothing will happen if you press ALT-5. Jensen Harris introduced the keyboard access to the QAT in this post. If you are wondering what comes after 01 (read the post to get what I mean), here is the answer:

Beyond what Microsoft provides in the box

What if you really want to customize the Ribbon? What do you do then? For one, you can become a developer and learn how to customize the Ribbon using RibbonX. I will post an introduction to that as my next post. If you are not a developer though, you have no other option than use a 3rd party add-in.

I am developing such an add-in. The basic goal of the add-in is to give users some control back over their own Office User Interface, because there are valid reasons why you want to change the Ribbon. The add-in is currently still in development, but the following screenshot is going to give you a hint of what you will be able to do with it:

P.S.: I wrote this post in OneNote 2007 on I-84, then published it via Word to my blog. I had to manually upload and insert the pictures. I still need to figure out how to best get the pictures scaled.

Hello World

May 23rd, 2006 by Patrick Schmid

Archival Notice: This post is no longer current and has been moved to the archive. Images and links in this post are not guaranteed to work.


Welcome to my brand new blog hosted on my own website and powered by WordPress. I am sure there are still a few glitches left on these pages. If you find any, please let me know and I will fix them.

This blog is mainly going to be about Microsoft Office 2007 or rather about “2007 Microsoft Office System” if you prefer the official name. As I am writing this, Microsoft has released Beta 2 to the public. If you don’t have Beta 2 on your computer yet, visit the Office preview site.
The focus of my blog posts will be on the Ribbon User Interface that Access, Excel, Outlook (partially), PowerPoint and Word have in Office 2007. Specifically, I will be blogging about customizing and extending this UI, from the point of view of a user and a developer (”RibbonX”).

I have so far come up with the following topic list. Please suggest any other topics you’d like to see covered. The list is not in order of how I am going to cover it. Please let me also know which topics you’d like to see first.
User view:

  • Customization in Office 2007 - what can I do?
  • The QAT
  • What if I want to change the ribbon itself?
  • RibbonCustomizer Add-In

Developer view:

  • Overview of the new UI customization model (”RibbonX”)
  • “Hello World” in Access, Excel, PowerPoint and Word from a COM Add-In using .NET (C# and VBA.NET)
  • “Hello World” in Access, Excel, PowerPoint and Word from a COM Add-In using VB6
  • “Hello World” in Outlook from a COM Add-In
  • “Hello World” in Excel, PowerPoint and Word with VBA
  • “Hello World” in Access with VBA
  • Developing COM add-ins for Office 2007 and earlier versions using .NET
  • Developing COM add-ins for Office 2007 and earlier versions using VB6
  • Ribbon UI Style Issues
  • Overview of Ribbon elements
  • Customizing Microsoft tabs, groups and controls of the ribbon
  • Dynamic Ribbon - hiding & showing of groups and controls dynamically
  • Dynamic Ribbon - create your own custom contextual tab
  • Dynamic Ribbon - trigger a tab switch

I will be on vacation until Sunday. In the meantime, check out the following resources from Microsoft: