How to call Active Accessibility APIs to develop automation for Office ribbon controls

To develop an add-in application for Microsoft Office, one of the largest difficulties is developing the automation for the new User Interface (UI) engine ribbon controls that was introduced in Office 2007. The COM object model for Office does not provide any properties or functions to collect the ribbon information and invoke the functionalities for the ribbon controls.

This article describes an All-In-One Code Framework sample that contains the CSOfficeRibbonAccessibility and VBOfficeRibbonAccessibility projects. This code sample demonstrates how to call a Microsoft Active Accessibility API to develop automation for Office ribbon controls. The Active Accessibility API refers to the native constants and functions that are exposed in the oleacc.dll library. To call these APIs from .NET, you need to adopt Platform Invoke Technology.

Difficulty level

Download information

To download this code sample, click one of the following links:


Technology category

  • Office Solution Development


This code sample contains the following programming languages:
LanguageProject Name
Visual C#CSOfficeRibbonAccessibility
Visual Basic.NETVOfficeRibbonAccessibility


To run this sample code, you must have Microsoft Visual Studio 2010 and Microsoft Office 2010 installed. Or, you must have Microsoft Visual Studio 2007 and Microsoft Office 2007 installed.

Project usage

To use the sample project, follow these steps: 
  1. Compile the Visual Studio Tools for Office (VSTO) project by using Microsoft Visual Studio 2007 or Microsoft Visual Studio 2010.
  2. Open Microsoft Word 2007 or Microsoft Word 2010. A Show Ribbon Information button is displayed on the Add-Ins tab.
  3. Click the Show Ribbon Information button. A form will pop up.
  4. In the first list box on the form, you can see all visible ribbon tabs. For example, you can see the Home, Insert, and PageLayout ribbon tabs.
  5. Click one of the ribbon tabs to navigate to it.
  6. Click the See children groups button. All groups of the selected tab will fill into the second list box.
  7. Click the See children controls button. All controls of the selected group will fill into the third list box.
  8. Click the Execute selected control button. This button invokes the functions for the selected control.

What is All-In-One Code Framework?

All-In-One Code Framework shows most Microsoft development techniques by using code samples in different programming languages. Each example is carefully selected, composed, and documented to show one common code scenario. For more information about All-In-One Code Framework, visit the following Microsoft website:

How to find more All-In-One Code Framework samples

To find more All-In-One Code Framework samples, search for "kbcodefx" together with related keywords on the Microsoft support Web site. Or, visit the following Microsoft website:
For more information about the Microsoft Active Accessibility API, visit the following Microsoft website:
Rapid publishing disclaimer
Microsoft corporation and/or its respective suppliers make no representations about the suitability, reliability, or accuracy of the information and related graphics contained herein. All such information and related graphics are provided "as is" without warranty of any kind. Microsoft and/or its respective suppliers hereby disclaim all warranties and conditions with regard to this information and related graphics, including all implied warranties and conditions of merchantability, fitness for a particular purpose, workmanlike effort, title and non-infringement. You specifically agree that in no event shall Microsoft and/or its suppliers be liable for any direct, indirect, punitive, incidental, special, consequential damages or any damages whatsoever including, without limitation, damages for loss of use, data or profits, arising out of or in any way connected with the use of or inability to use the information and related graphics contained herein, whether based on contract, tort, negligence, strict liability or otherwise, even if Microsoft or any of its suppliers has been advised of the possibility of damages.

Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.

Αναγνωριστικό άρθρου: 2494267 - Τελευταία αναθεώρηση: 01/28/2011 03:52:00 - Αναθεώρηση: 1.0

  • kbcodefx kbrapidpub kbinfo atdownload kbnomt kbsurveynew KB2494267