One of the biggest changes in Office 2007 is, of course, the Ribbon. Early in the design of the Ribbon, Microsoft realized that there had to be a way for it to be customized by developers and (to a certain extent) end users. That realization led to RibbonX, the Ribbon's programmability mechanism. This chapter provides an introduction to RibbonX and explains how you can customize the Ribbon, both for yourself and within your applications.
In previous versions of Office, you created menus and toolbars by using VBA to manipulate the objects that make up the
CommandBars object model (see Chapter 15). The code to do that for a non-trivial application often extended to hundreds and sometimes thousands of lines of VBA that proved hard to maintain when menus were added, removed, or rearranged. For some time, best practice has been to use a table-driven approach to building menus, in which the menus and toolbars were defined by filling in a table on a worksheet and a dedicated (and reusable) VBA procedure interpreted the table to create the menus and toolbars. Even when using a table-driven approach, you still needed quite a bit of custom VBA to ensure that specific menus were visible only when their workbook was active, and had to be extremely careful about removing customizations when the workbook was closed.
When designing the programmability model for the Ribbon, Microsoft started with the current best practices, identified the remaining pain points, and removed ...