You are previewing RibbonX: Customizing the Office 2007 Ribbon.
O'Reilly logo
RibbonX: Customizing the Office 2007 Ribbon

Book Description

  • As the most radical change to the Office interface in its history, the Ribbon replaces the traditional menu bar and toolbars and requires a new set of skills for customizing

  • Instructions and examples demonstrate how to customize the Ribbon using VBA, XML, Access, Excel, and Word

  • Covers the relevant aspects of security, such as trust centers and digital certificates

  • Packed with real-world code examples that readers can immediately apply

  • Features helpful references

Table of Contents

  1. Copyright
  2. About the Authors
  3. Credits
  4. Acknowledgments
  5. Introduction
    1. Overview of the Book and Technology
    2. How This Book Is Organized
    3. Why Read This Book
    4. Tools You Will Need
    5. What's on the Website
    6. Congratulations
  6. I. The Building Blocks for a Successful Customization
    1. 1. An Introduction to the Office User Interface
      1. 1.1. What Is the Ribbon and Why Does It Exist?
        1. 1.1.1. Problems with the Old UI
        2. 1.1.2. Issues Solved with the New UI
        3. 1.1.3. Issues Created with the New UI
      2. 1.2. What Happened to the Toolbars from My Pre-2007 Files?
      3. 1.3. A Customization Example for Pre-2007 UIs
      4. 1.4. Ribbon Components
      5. 1.5. Tips for Navigating the Ribbon and Quick Access Toolbar (QAT)
        1. 1.5.1. Using Keyboard Shortcuts and Keytips
        2. 1.5.2. Using the Mouse Wheel
        3. 1.5.3. Minimizing and Maximizing the Ribbon
        4. 1.5.4. Adding Commands to the QAT
        5. 1.5.5. Assigning a Macro to a QAT Button
        6. 1.5.6. Changing the QAT Location
      6. 1.6. Preparing for Ribbon Customization
        1. 1.6.1. Showing the Developer Tab
        2. 1.6.2. Showing CustomUI Errors at Load Time
        3. 1.6.3. Reviewing Office 2007 Security
        4. 1.6.4. Has Customization of the Office UI Become Easier?
      7. 1.7. Conclusion
    2. 2. Accessing the UI Customization Layer
      1. 2.1. Accessing the Excel and Word Ribbon Customization Layers
        1. 2.1.1. What's New in Excel and Word Files?
        2. 2.1.2. Creating a Ribbon Customization with Notepad
          1. 2.1.2.1. Creating the customUI File
          2. 2.1.2.2. Creating the File to Use the Customized UI
          3. 2.1.2.3. Attaching the XML to the File
        3. 2.1.3. Using the Microsoft Office 2007 Custom UI Editor to Modify Your UI
          1. 2.1.3.1. Installing Microsoft .NET Framework 2.0 for Windows XP Users
          2. 2.1.3.2. Installing the Microsoft Office 2007 Custom UI Editor
          3. 2.1.3.3. Using the CustomUI Editor to Customize the Ribbon
          4. 2.1.3.4. Storing Customization Templates in the CustomUI Editor
          5. 2.1.3.5. Some Notes About Using the CustomUI Editor
        4. 2.1.4. XML Notepad
          1. 2.1.4.1. Installing XML Notepad
          2. 2.1.4.2. Using XML Notepad
          3. 2.1.4.3. The Benefits of XML Notepad
          4. 2.1.4.4. The Drawbacks of XML Notepad
        5. 2.1.5. A Final Word on Excel and Word Customizations
      2. 2.2. Microsoft Access Customizations
        1. 2.2.1. Storing the CustomUI Information in Tables
          1. 2.2.1.1. Creating an Access UI Modification Using a Table
          2. 2.2.1.2. Access USysRibbons Caveat
        2. 2.2.2. Other Techniques for Access UI Customizations
      3. 2.3. Conclusion
    3. 3. Understanding XML
      1. 3.1. What Is XML and Why Do You Need It?
      2. 3.2. Essential Background
        1. 3.2.1. Tags
        2. 3.2.2. Elements
        3. 3.2.3. Attributes
          1. 3.2.3.1. The id Attribute
          2. 3.2.3.2. The label Attribute
        4. 3.2.4. Tips for Laying Out XML Code
        5. 3.2.5. Creating Comments in XML Code
      3. 3.3. The Core XML Framework
      4. 3.4. The customUI Element
        1. 3.4.1. Required Attributes of the customUI Element
        2. 3.4.2. Optional Static and Dynamic Attributes with Callback Signatures
        3. 3.4.3. Allowed Children Objects of the customUI Element
      5. 3.5. The ribbon Element
        1. 3.5.1. Required Attributes of the ribbon Element
        2. 3.5.2. Optional Static Attributes
        3. 3.5.3. Allowed Children Objects of the ribbon Element
        4. 3.5.4. Graphical View of ribbon Attributes
      6. 3.6. The tabs Element
        1. 3.6.1. Required Attributes of the tabs Element
        2. 3.6.2. Allowed Children Objects of the tabs Element
      7. 3.7. The tab Element
        1. 3.7.1. Required Attributes of the tab Element
        2. 3.7.2. Optional Static and Dynamic Attributes with Callback Signatures
        3. 3.7.3. Allowed Children Objects of the tab Element
        4. 3.7.4. Graphical View of tab Attributes
        5. 3.7.5. Built-in Tabs
          1. 3.7.5.1. Referring to Built-in Tabs
          2. 3.7.5.2. Modifying a Built-in Tab
        6. 3.7.6. Custom Tabs
          1. 3.7.6.1. Creating Custom Tabs
          2. 3.7.6.2. Positioning Custom Tabs
      8. 3.8. The group Element
        1. 3.8.1. Required Attributes of the group Element
        2. 3.8.2. Optional Static and Dynamic Attributes with Callback Signatures
        3. 3.8.3. Allowed Children Objects of the group Element
        4. 3.8.4. Graphical View of group Attributes
        5. 3.8.5. Built-in Groups
          1. 3.8.5.1. Referring to Built-in Groups
          2. 3.8.5.2. Using a Built-in Group on a Custom Tab
        6. 3.8.6. Custom Groups
          1. 3.8.6.1. Creating Custom Groups
          2. 3.8.6.2. Positioning Custom Groups
          3. 3.8.6.3. Custom Groups on Built-in Tabs
      9. 3.9. Conclusion
    4. 4. Introducing Visual Basic for Applications (VBA)
      1. 4.1. Getting Started with Visual Basic for Applications (VBA)
        1. 4.1.1. What Is VBA?
        2. 4.1.2. Macro-Enabled Documents
        3. 4.1.3. Using the Visual Basic Editor (VBE)
      2. 4.2. Recording Macros for Excel and Word
        1. 4.2.1. A Recording Example
        2. 4.2.2. Editing the Recorded Macro
        3. 4.2.3. Editing Macro Options After Recording
      3. 4.3. Subprocedures versus Functions
        1. 4.3.1. Object Model
        2. 4.3.2. Subprocedures
        3. 4.3.3. Functions
      4. 4.4. VBA Coding Techniques
        1. 4.4.1. Looping Statements
          1. 4.4.1.1. For-Next Loops
          2. 4.4.1.2. Do-While/Do-Until Loops
        2. 4.4.2. With ... End With Statement
        3. 4.4.3. If ... Then ... Else ... End If Statement
        4. 4.4.4. Select Case Statement
      5. 4.5. Writing Your Own Code
        1. 4.5.1. Naming Conventions
        2. 4.5.2. Data Types
        3. 4.5.3. Working with Events
          1. 4.5.3.1. Workbook Events
          2. 4.5.3.2. Worksheet Events
          3. 4.5.3.3. Form and Report Events in Access
          4. 4.5.3.4. Document-Level Events in Word
          5. 4.5.3.5. Application-Level Events
        4. 4.5.4. The Object Browser
        5. 4.5.5. Referencing Libraries
          1. 4.5.5.1. Early and Late Bindings Explained
      6. 4.6. Debugging Your Code
        1. 4.6.1. Debug.Print and Debug.Assert
        2. 4.6.2. Stop Statement
        3. 4.6.3. Immediate Window
        4. 4.6.4. Locals Window
        5. 4.6.5. Watches Window
      7. 4.7. Error Handling
        1. 4.7.1. On Error Resume Next
        2. 4.7.2. On Error GoTo
      8. 4.8. Working with Arrays
        1. 4.8.1. Determining the Boundaries of an Array
        2. 4.8.2. Resizing Arrays
      9. 4.9. Conclusion
    5. 5. Callbacks: The Key to Adding Functionality to Your Custom UI
      1. 5.1. Callbacks: What They Are and Why You Need Them
      2. 5.2. Setting Up the File for Dynamic Callbacks
        1. 5.2.1. Capturing the IRibbonUI Object
          1. 5.2.1.1. Adjusting the XML to Include onLoad
          2. 5.2.1.2. Setting Up VBA Code to Handle the onLoad Event
      3. 5.3. Generating Your First Callback
        1. 5.3.1. Writing Your Callback from Scratch
        2. 5.3.2. Using the Office CustomUI Editor to Generate Callbacks
        3. 5.3.3. Understanding the Order of Events When a File Is Open
        4. 5.3.4. Can I Have Two Callbacks with the Same Name But Different Signatures?
      4. 5.4. Calling Procedures Located in Different Workbooks
      5. 5.5. Organizing Your Callbacks
        1. 5.5.1. Individual Callback Handlers
        2. 5.5.2. Using Global Callback Handlers
        3. 5.5.3. Handling Callbacks in Access
          1. 5.5.3.1. Using VBA to Handle Callbacks
          2. 5.5.3.2. Using Macros to Handle Callbacks
      6. 5.6. Invalidating UI Components
        1. 5.6.1. What Invalidating Does and Why You Need It
        2. 5.6.2. Invalidating the Entire Ribbon
        3. 5.6.3. Invalidating Individual Controls
      7. 5.7. Conclusion
    6. 6. RibbonX Basic Controls
      1. 6.1. The button Element
        1. 6.1.1. Required Attributes of the button Element
        2. 6.1.2. Optional Static and Dynamic Attributes with Callback Signatures
        3. 6.1.3. Allowed Children Objects of the button Element
        4. 6.1.4. Parent Objects of the button Element
        5. 6.1.5. Graphical View of button Attributes
        6. 6.1.6. Using Built-in button Controls
        7. 6.1.7. A button Idiosyncrasy: The showLabel Attribute
        8. 6.1.8. Creating Custom button Controls
          1. 6.1.8.1. An Excel Example
          2. 6.1.8.2. A Word Example
          3. 6.1.8.3. An Access Example
      2. 6.2. The checkBox Element
        1. 6.2.1. Required Attributes of the checkBox Element
        2. 6.2.2. Optional Static and Dynamic Attributes with Callback Signatures
        3. 6.2.3. Allowed Children Objects of the checkBox Element
        4. 6.2.4. Parent Objects of the button Element
        5. 6.2.5. Graphical View of checkBox Attributes
        6. 6.2.6. Using Built-in checkBox Controls
        7. 6.2.7. Creating Custom Controls
          1. 6.2.7.1. An Excel Example
          2. 6.2.7.2. A Word Example
          3. 6.2.7.3. An Access Example
      3. 6.3. The editBox Element
        1. 6.3.1. Required Attributes of the editBox Element
        2. 6.3.2. Optional Static and Dynamic Attributes with Callback Signatures
        3. 6.3.3. Allowed Children Objects of the editBox Element
        4. 6.3.4. Parent Objects of the editBox Element
        5. 6.3.5. Graphical View of editBox Attributes
        6. 6.3.6. Using Built-in editBox Controls
        7. 6.3.7. Creating Custom Controls
          1. 6.3.7.1. An Excel Example
          2. 6.3.7.2. A Word Example
          3. 6.3.7.3. An Access Example
      4. 6.4. The toggleButton Element
        1. 6.4.1. Required Attributes of the toggleButton Element
        2. 6.4.2. Optional Static and Dynamic Attributes with Callback Signatures
        3. 6.4.3. Allowed Children Objects of the toggleButton Element
        4. 6.4.4. Parent Objects of the toggleButton Element
        5. 6.4.5. Graphical View of toggleButton Attributes
        6. 6.4.6. Using Built-in toggleButton Controls
        7. 6.4.7. Creating Custom Controls
          1. 6.4.7.1. An Excel Example
          2. 6.4.7.2. A Word Example
          3. 6.4.7.3. An Access Example
      5. 6.5. Conclusion
    7. 7. comboBox and dropDown Controls
      1. 7.1. The item Element
        1. 7.1.1. Required Attributes of the item Element
        2. 7.1.2. Optional Static and Dynamic Attributes with Callback Signatures
        3. 7.1.3. Allowed Children Objects of the item Element
        4. 7.1.4. Parent Objects of the item Element
        5. 7.1.5. Graphical View of item Attributes
        6. 7.1.6. Using Built-in Controls
        7. 7.1.7. Creating Custom Controls
      2. 7.2. The comboBox Element
        1. 7.2.1. Required Attributes of the comboBox Element
        2. 7.2.2. Optional Static and Dynamic Attributes withCallback Signatures
        3. 7.2.3. Allowed Children Objects of the comboBox Element
        4. 7.2.4. Parent Objects of the comboBox Element
        5. 7.2.5. Graphical View of comboBox Attributes
        6. 7.2.6. Using Built-in Controls
        7. 7.2.7. Creating Custom Controls
          1. 7.2.7.1. An Excel Example
          2. 7.2.7.2. A Word Example
          3. 7.2.7.3. An Access Example
      3. 7.3. The dropDown Element
        1. 7.3.1. Required Attributes of the dropDown Element
        2. 7.3.2. Optional Static and Dynamic Attributes with Callback Signatures
        3. 7.3.3. Allowed Children Objects of the dropDown Element
        4. 7.3.4. Parent Objects of the dropDown Element
        5. 7.3.5. Graphical View of dropDown Attributes
        6. 7.3.6. Using Built-in Controls
        7. 7.3.7. Creating Custom Controls
          1. 7.3.7.1. An Excel Example
          2. 7.3.7.2. A Word Example
          3. 7.3.7.3. An Access Example
      4. 7.4. Conclusion
    8. 8. Custom Pictures and Galleries
      1. 8.1. Custom Pictures
        1. 8.1.1. Suggested Picture Formats
        2. 8.1.2. Appropriate Picture Size and Scaling
      2. 8.2. Adding Custom Pictures to Excel or Word Projects
        1. 8.2.1. Using the Custom UI Editor
        2. 8.2.2. Loading Custom Pictures On-the-Fly
      3. 8.3. Adding Custom Pictures to Access Projects
      4. 8.4. Using GDI+ to Load PNG Files
      5. 8.5. Using the Gallery Control
        1. 8.5.1. Example of Static Attributes
        2. 8.5.2. Example of Built-in Controls
        3. 8.5.3. Creating an Image Gallery On-the-Fly
      6. 8.6. Conclusion
    9. 9. Creating Menus
      1. 9.1. The menu Element
        1. 9.1.1. Required Attributes of the menu Element
        2. 9.1.2. Optional Static and Dynamic Attributes with Callback Signatures
        3. 9.1.3. Allowed Children Objects of the menu Element
        4. 9.1.4. Parent Controls of the menu Element
        5. 9.1.5. Graphical View of menu Attributes
        6. 9.1.6. Using Built-in Controls
        7. 9.1.7. Creating Custom Controls
          1. 9.1.7.1. An Excel Example
          2. 9.1.7.2. A Word Example
          3. 9.1.7.3. An Access Example
      2. 9.2. The splitButton Element
        1. 9.2.1. Required Attributes of the splitButton Element
        2. 9.2.2. Optional Static and Dynamic Attributes with Callback Signatures
        3. 9.2.3. Allowed Children Objects of the splitButton Element
        4. 9.2.4. Parent Objects of the splitButton Element
        5. 9.2.5. Graphical View of splitButton Attributes
        6. 9.2.6. Using Built-in Controls
        7. 9.2.7. Creating Custom Controls
          1. 9.2.7.1. An Excel Example
          2. 9.2.7.2. A Word Example
          3. 9.2.7.3. An Access Example
      3. 9.3. The dynamicMenu Element
        1. 9.3.1. Required Attributes of the dynamicMenu Element
        2. 9.3.2. Optional Static and Dynamic Attributes with Callback Signatures
        3. 9.3.3. Allowed Children Objects of the dynamicMenu Element
        4. 9.3.4. Parent Objects of the dynamicMenu Element
        5. 9.3.5. Graphical View of dynamicMenu Attributes
        6. 9.3.6. Using Built-in Controls
        7. 9.3.7. Creating Custom Controls
      4. 9.4. Conclusion
    10. 10. Formatting Elements
      1. 10.1. The box Element
        1. 10.1.1. Required Attributes of the box Element
        2. 10.1.2. Optional Static and Dynamic Attributes with Callback Signatures
        3. 10.1.3. Allowed Children Objects of the box Element
        4. 10.1.4. Parent Objects of the box Element
        5. 10.1.5. Graphical View of box Attributes
        6. 10.1.6. Using Built-in box Elements
        7. 10.1.7. Creating Custom box Elements
          1. 10.1.7.1. Horizontal Alignment
          2. 10.1.7.2. Vertical Alignment
          3. 10.1.7.3. Nesting box Controls
      2. 10.2. The buttonGroup element
        1. 10.2.1. Required Attributes of the buttonGroup element
        2. 10.2.2. Optional Static and Dynamic Attributes with Callback Signatures
        3. 10.2.3. Allowed Children Objects of the buttonGroup Element
        4. 10.2.4. Parent Objects of the buttonGroup Element
        5. 10.2.5. Graphical View of a buttonGroup
        6. 10.2.6. Using Built-in buttonGroup Elements
        7. 10.2.7. Creating Custom buttonGroup Elements
      3. 10.3. The labelControl Element
        1. 10.3.1. Required Attributes
        2. 10.3.2. Optional Static and Dynamic Attributes with Callback Signatures
        3. 10.3.3. Allowed Children Objects of the labelControl Element
        4. 10.3.4. Parent Objects of the labelControl Element
        5. 10.3.5. Graphical View of a labelControl
        6. 10.3.6. Using Built-in labelControl Elements
        7. 10.3.7. Creating Custom labelControl Elements
      4. 10.4. The separator Element
        1. 10.4.1. Required Attributes of the separator Element
        2. 10.4.2. Optional Static and Dynamic Attributes with Callback Signatures
        3. 10.4.3. Allowed Children Objects of the separator Element
        4. 10.4.4. Parent Objects of the separator Element
        5. 10.4.5. Graphical View of a Separator
        6. 10.4.6. Using Built-in separator Elements
        7. 10.4.7. Creating Custom separator Elements
      5. 10.5. The menuSeparator Element
        1. 10.5.1. Required Attributes of the menuSeparator Element
        2. 10.5.2. Optional Static and Dynamic Attributes with Callback Signatures
        3. 10.5.3. Allowed Children Objects of the menuSeparator Element
        4. 10.5.4. Parent Objects of the menuSeparator Element
        5. 10.5.5. Graphical View of the menuSeparator Element
        6. 10.5.6. Using Built-in menuSeparator Elements
        7. 10.5.7. Creating Custom menuSeparator Elements
      6. 10.6. Conclusion
    11. 11. Using Controls and Attributes to Help Your Users
      1. 11.1. The dialogBoxLauncher Element
        1. 11.1.1. Required and Optional Attributes
        2. 11.1.2. Allowed Children Objects
        3. 11.1.3. Parent Objects
        4. 11.1.4. Examples of Using the dialogBoxLauncher Element
          1. 11.1.4.1. Built-in dialogBoxLaunchers
          2. 11.1.4.2. A Custom dialogBoxLauncher with Built-in Dialogs
          3. 11.1.4.3. Custom dialogBoxLauncher with Custom Userforms
      2. 11.2. The keytip Attribute
        1. 11.2.1. Creating a Keytip
        2. 11.2.2. Keytip Idiosyncrasies
      3. 11.3. screentip and supertip Attributes
        1. 11.3.1. Creating screentip and supertip Attributes
      4. 11.4. Overwriting Built-in Control Attributes
      5. 11.5. Conclusion
  7. II. Advanced Concepts in Ribbon Customization
    1. 12. Advanced VBA Techniques
      1. 12.1. Working with Collections
        1. 12.1.1. Determining Whether an Item Belongs to a Collection
      2. 12.2. Class Modules
        1. 12.2.1. Properties, Methods, and Events
          1. 12.2.1.1. Working with Properties
          2. 12.2.1.2. Working with Methods
          3. 12.2.1.3. Working with Events
        2. 12.2.2. Web Services and CustomUI
      3. 12.3. Using VBA Custom Properties
        1. 12.3.1. Setting Up the Custom Properties
      4. 12.4. Saving and Retrieving Values from the Registry
      5. 12.5. Conclusion
    2. 13. Overriding Built-in Controls in the Ribbon
      1. 13.1. Starting the UI from Scratch
        1. 13.1.1. Setting the startFromScratch Attribute
      2. 13.2. Activating a Tab at Startup
      3. 13.3. Disabling and Repurposing Commands
        1. 13.3.1. Disabling Commands, Application Options, and Exit
          1. 13.3.1.1. Disabling Commands
          2. 13.3.1.2. Disabling the Commands Associated with the Application Options and Exit Controls
        2. 13.3.2. Repurposing a Command Associated with a Generic Control
        3. 13.3.3. Affecting the Keyboard Shortcuts and Keytips
      4. 13.4. Conclusion
    3. 14. Customizing the Office Menu and the QAT
      1. 14.1. Adding Items to the Office Menu
      2. 14.2. Adding Items to the QAT
        1. 14.2.1. Customization Overview
          1. 14.2.1.1. sharedControls versus documentControls
        2. 14.2.2. Adding Custom and Built-in Commands to the QAT
        3. 14.2.3. Adding Custom and Built-in Groups to the QAT
        4. 14.2.4. Repurposing QAT Controls
        5. 14.2.5. Table-Driven Approach for QAT Customization (Excel and Word)
        6. 14.2.6. Table-Driven Approach for QAT Customization (Access)
        7. 14.2.7. QAT Caveats
          1. 14.2.7.1. Inability to Load Controls
          2. 14.2.7.2. Inability to Load Custom Images to Controls
          3. 14.2.7.3. Duplication of Controls on XML-Based and XML-Free Customizations
      3. 14.3. Conclusion
    4. 15. Working with Contextual Controls
      1. 15.1. Making Your Items Contextual
        1. 15.1.1. Tabs
        2. 15.1.2. Groups
      2. 15.2. Working Through Nonvisibility Methods
        1. 15.2.1. Enabling and Disabling Controls
      3. 15.3. Working with Contextual Tabs and tabSets
        1. 15.3.1. Creating a Custom Contextual Tab in Access
          1. 15.3.1.1. Renaming a tabSet
        2. 15.3.2. Modifying Built-in Contextual Tabs
      4. 15.4. Working with Contextual Pop-up Menus
        1. 15.4.1. Replacing Built-in Pop-up Menus in Their Entirety
        2. 15.4.2. Adding Individual Items to Pop-up Menus
      5. 15.5. Multilingual UI
      6. 15.6. Conclusion
    5. 16. Sharing and Deploying Ribbon Customizations
      1. 16.1. Excel Deployment Techniques
        1. 16.1.1. Distributing Workbooks
        2. 16.1.2. Using Templates
        3. 16.1.3. Creating and Deploying Add-ins
          1. 16.1.3.1. Preparing a Workbook for Conversion to an Add-in
          2. 16.1.3.2. Converting a Workbook to an Add-in Format
          3. 16.1.3.3. Installing an Add-in
          4. 16.1.3.4. Unloading and Removing Add-ins
          5. 16.1.3.5. Toggling the IsAddin Property
        4. 16.1.4. A Note on the PERSONAL.XLSB Workbook
      2. 16.2. Word Deployment Techniques
        1. 16.2.1. Distributing Documents
        2. 16.2.2. Using Templates
          1. 16.2.2.1. Configuring Template Directories
          2. 16.2.2.2. Creating Templates
        3. 16.2.3. Global Templates
          1. 16.2.3.1. Preparing a Document for Conversion to a Global Template
          2. 16.2.3.2. Converting a Template to a Global Template
          3. 16.2.3.3. Editing Global Templates
          4. 16.2.3.4. Removing Global Templates
        4. 16.2.4. A Note on the Normal.dotm Template
      3. 16.3. Sharing Ribbon Items Across Files (Word and Excel)
        1. 16.3.1. Creating a Shared Namespace
        2. 16.3.2. Sharing Tabs and Groups in Excel
        3. 16.3.3. Sharing Tabs and Groups in Word
      4. 16.4. Deploying Word and Excel Solutions Where Multiple Versions of Office are in Use
        1. 16.4.1. Do Legacy CommandBar Customizations Still Work?
        2. 16.4.2. Method 1: Creating Separate Versions
        3. 16.4.3. Method 2: Calling a Previous Version from a New Add-in
          1. 16.4.3.1. Using a 2003 Excel Add-in as a Front-End Loader for a 2007 Add-in
          2. 16.4.3.2. Using a Word 2007 Global Template as a Front-End for a 2003 Template
      5. 16.5. Access Deployment Techniques
        1. 16.5.1. General Information Concerning Database Deployment
          1. 16.5.1.1. Preparing the Files for Multi-User Environments
          2. 16.5.1.2. Managing Access Startup Options
          3. 16.5.1.3. Leveraging the startFromScratch Attribute
          4. 16.5.1.4. Adjusting Access Options for Your Users
          5. 16.5.1.5. Creating an ACCDE File
        2. 16.5.2. Loading the customUI from an External Source
        3. 16.5.3. Deploying Solutions to Users with Full-Access Installations
          1. 16.5.3.1. Deploying Customizations with Full Versions of Access
        4. 16.5.4. Deploying Solutions to Users with the Access Runtime Version
      6. 16.6. Conclusion
    6. 17. Security In Microsoft Office
      1. 17.1. Security Prior to Office 2007
      2. 17.2. Macro-Enabled and Macro-Free File Formats
      3. 17.3. The Trust Center
        1. 17.3.1. Trusted Publishers
        2. 17.3.2. Trusted Locations
          1. 17.3.2.1. Adding, Modifying, or Removing Trusted Locations
          2. 17.3.2.2. Trusting Network Locations
          3. 17.3.2.3. Disabling Trusted Locations
        3. 17.3.3. Add-ins
          1. 17.3.3.1. Requiring Add-ins to Be Signed
          2. 17.3.3.2. Disabling Notification for Unsigned Add-ins
          3. 17.3.3.3. Disabling All Add-ins
        4. 17.3.4. ActiveX Settings
        5. 17.3.5. Macro Settings
          1. 17.3.5.1. Setting Macro Options
          2. 17.3.5.2. Trusting VBA Project Access
        6. 17.3.6. Message Bar
        7. 17.3.7. Privacy Options
      4. 17.4. Digital Certificates
        1. 17.4.1. How Digital Certificates Work
        2. 17.4.2. Acquiring a Digital Certificate
        3. 17.4.3. Using SELFCERT.exe to Create a Digital Signature
        4. 17.4.4. Adding a Digital Certificate to a Project
        5. 17.4.5. Trusting a Digital Certificate on Another Machine
        6. 17.4.6. Deleting a Digital Certificate from Your Machine
      5. 17.5. Conclusion
  8. A. Tables of RibbonX Tags
    1. A.1. How to Use This Appendix
    2. A.2. Ribbon Container Elements
      1. A.2.1. customUI Element
      2. A.2.2. ribbon Element
      3. A.2.3. contextualTabs Element
      4. A.2.4. tabSet Element
      5. A.2.5. qat Element
      6. A.2.6. sharedControls Element
      7. A.2.7. documentControls Element
      8. A.2.8. officeMenu Element
      9. A.2.9. tabs Element
      10. A.2.10. tab Element
      11. A.2.11. group Element
    3. A.3. Ribbon Control Elements
      1. A.3.1. box Element
      2. A.3.2. button Element
      3. A.3.3. buttonGroup Element
      4. A.3.4. checkBox Element
      5. A.3.5. comboBox Element
      6. A.3.6. dialogBoxLauncher Element
      7. A.3.7. dropDown Element
      8. A.3.8. dynamicMenu Element
      9. A.3.9. editBox Element
      10. A.3.10. gallery Element
      11. A.3.11. item Element
      12. A.3.12. labelControl Element
      13. A.3.13. menu Element
      14. A.3.14. menuSeparator Element
      15. A.3.15. separator Element
      16. A.3.16. splitButton Element
      17. A.3.17. toggleButton Element
  9. B. Tables of Tab and Group idMso Names
    1. B.1. Common Tab idMso Identifiers
    2. B.2. Contextual Tab idMso Identifiers
      1. B.2.1. Contextual Tab idMso Identifiers for Excel
      2. B.2.2. Contextual Tab idMso Identifiers for Access
      3. B.2.3. Contextual Tab idMso Identifiers for Word
    3. B.3. Group idMso Identifiers
      1. B.3.1. Excel's Group idMso Identifiers
      2. B.3.2. Access's Group idMso Identifiers
      3. B.3.3. Word's Group idMso Identifiers
  10. C. imageMso Reference Guide
    1. C.1. How to Get Your Own imageMso References
    2. C.2. Your Own Reference Tool
  11. D. Keytips and Accelerator keys
    1. D.1. Keytips and Accelerator Keys for Excel
  12. E. RibbonX Naming Conventions
    1. E.1. How Our Naming System Works
    2. E.2. Naming Samples
  13. F. Where to Find Help
    1. F.1. Websites with RibbonX Information
    2. F.2. Websites Maintained by the Authoring and Tech Edit Team
    3. F.3. Newsgroups
    4. F.4. Web Forums