|
RibbonX |
5 |
|
|
About the Authors |
11 |
|
|
Credits |
13 |
|
|
Contents |
15 |
|
|
Acknowledgments |
29 |
|
|
Introduction |
31 |
|
|
Overview of the Book and Technology |
32 |
|
|
How This Book Is Organized |
32 |
|
|
Why Read This Book |
35 |
|
|
Tools You Will Need |
35 |
|
|
What’s on the Website |
35 |
|
|
Congratulations |
36 |
|
|
Part I: The Building Blocks for a Successful Customization |
37 |
|
|
Chapter 1: An Introduction to the Office User Interface |
39 |
|
|
What Is the Ribbon and Why Does It Exist? |
39 |
|
|
What Happened to the Toolbars from My Pre-2007 Files? |
45 |
|
|
A Customization Example for Pre-2007 UIs |
46 |
|
|
Ribbon Components |
52 |
|
|
Tips for Navigating the Ribbon and Quick Access Toolbar (QAT) |
53 |
|
|
Preparing for Ribbon Customization |
60 |
|
|
Conclusion |
63 |
|
|
Chapter 2: Accessing the UI Customization Layer |
65 |
|
|
Accessing the Excel and Word Ribbon Customization Layers |
66 |
|
|
Microsoft Access Customizations |
84 |
|
|
Conclusion |
88 |
|
|
Chapter 3: Understanding XML |
91 |
|
|
What Is XML and Why Do You Need It? |
91 |
|
|
Essential Background |
93 |
|
|
The Core XML Framework |
101 |
|
|
The customUI Element |
101 |
|
|
The ribbon Element |
103 |
|
|
The tabs Element |
105 |
|
|
The tab Element |
106 |
|
|
The group Element |
112 |
|
|
Conclusion |
121 |
|
|
Chapter 4: Introducing Visual Basic for Applications (VBA) |
123 |
|
|
Getting Started with Visual Basic for Applications (VBA) |
124 |
|
|
Recording Macros for Excel and Word |
127 |
|
|
Subprocedures versus Functions |
133 |
|
|
VBA Coding Techniques |
137 |
|
|
Writing Your Own Code |
146 |
|
|
Debugging Your Code |
165 |
|
|
Error Handling |
173 |
|
|
Working with Arrays |
176 |
|
|
Conclusion |
179 |
|
|
Chapter 5: Callbacks: The Key to Adding Functionality to Your Custom UI |
181 |
|
|
Callbacks: What They Are and Why You Need Them |
181 |
|
|
Setting Up the File for Dynamic Callbacks |
182 |
|
|
Generating Your First Callback |
184 |
|
|
Calling Procedures Located in Different Workbooks |
189 |
|
|
Organizing Your Callbacks |
191 |
|
|
Invalidating UI Components |
198 |
|
|
Conclusion |
203 |
|
|
Chapter 6: RibbonX Basic Controls |
205 |
|
|
The button Element |
205 |
|
|
The checkBox Element |
219 |
|
|
The editBox Element |
232 |
|
|
The toggleButton Element |
245 |
|
|
Conclusion |
259 |
|
|
Chapter 7: comboBox and dropDown Controls |
261 |
|
|
The item Element |
261 |
|
|
The comboBox Element |
265 |
|
|
The dropDown Element |
280 |
|
|
Conclusion |
297 |
|
|
Chapter 8: Custom Pictures and Galleries |
299 |
|
|
Custom Pictures |
299 |
|
|
Adding Custom Pictures to Excel or Word Projects |
302 |
|
|
Adding Custom Pictures to Access Projects |
306 |
|
|
Using GDI+ to Load PNG Files |
310 |
|
|
Using the Gallery Control |
312 |
|
|
Conclusion |
318 |
|
|
Chapter 9: Creating Menus |
321 |
|
|
The menu Element |
322 |
|
|
The splitButton Element |
335 |
|
|
The dynamicMenu Element |
346 |
|
|
Conclusion |
356 |
|
|
Chapter 10: Formatting Elements |
359 |
|
|
The box Element |
360 |
|
|
The buttonGroup element |
369 |
|
|
The labelControl Element |
374 |
|
|
The separator Element |
380 |
|
|
The menuSeparator Element |
383 |
|
|
Conclusion |
388 |
|
|
Chapter 11: Using Controls and Attributes to Help Your Users |
391 |
|
|
The dialogBoxLauncher Element |
392 |
|
|
The keytip Attribute |
398 |
|
|
screentip and supertip Attributes |
402 |
|
|
Overwriting Built-in Control Attributes |
404 |
|
|
Conclusion |
405 |
|
|
Part II: Advanced Concepts in Ribbon Customization |
407 |
|
|
Chapter 12: Advanced VBA Techniques |
409 |
|
|
Working with Collections |
409 |
|
|
Class Modules |
414 |
|
|
Using VBA Custom Properties |
425 |
|
|
Saving and Retrieving Values from the Registry |
430 |
|
|
Conclusion |
435 |
|
|
Chapter 13: Overriding Built-in Controls in the Ribbon |
437 |
|
|
Starting the UI from Scratch |
438 |
|
|
Activating a Tab at Startup |
440 |
|
|
Disabling and Repurposing Commands |
442 |
|
|
Conclusion |
448 |
|
|
Chapter 14: Customizing the Office Menu and the QAT |
449 |
|
|
Adding Items to the Office Menu |
449 |
|
|
Adding Items to the QAT |
454 |
|
|
Conclusion |
471 |
|
|
Chapter 15: Working with Contextual Controls |
473 |
|
|
Making Your Items Contextual |
473 |
|
|
Working Through Nonvisibility Methods |
477 |
|
|
Working with Contextual Tabs and tabSets |
478 |
|
|
Working with Contextual Pop-up Menus |
483 |
|
|
Multilingual UI |
491 |
|
|
Conclusion |
494 |
|
|
Chapter 16: Sharing and Deploying Ribbon Customizations |
495 |
|
|
Excel Deployment Techniques |
496 |
|
|
Word Deployment Techniques |
505 |
|
|
Sharing Ribbon Items Across Files (Word and Excel) |
513 |
|
|
Deploying Word and Excel Solutions Where Multiple Versions of Office are in Use |
527 |
|
|
Access Deployment Techniques |
540 |
|
|
Conclusion |
555 |
|
|
Chapter 17: Security In Microsoft Office |
559 |
|
|
Security Prior to Office 2007 |
560 |
|
|
Macro-Enabled and Macro-Free File Formats |
560 |
|
|
The Trust Center |
561 |
|
|
Digital Certificates |
570 |
|
|
Conclusion |
578 |
|
|
Appendix A: Tables of RibbonX Tags |
581 |
|
|
How to Use This Appendix |
581 |
|
|
Ribbon Container Elements |
582 |
|
|
Ribbon Control Elements |
588 |
|
|
Appendix B: Tables of Tab and Group idMso Names |
623 |
|
|
Common Tab idMso Identifiers |
623 |
|
|
Contextual Tab idMso Identifiers |
624 |
|
|
Group idMso Identifiers |
626 |
|
|
Appendix C: imageMso Reference Guide |
643 |
|
|
How to Get Your Own imageMso References |
643 |
|
|
Your Own Reference Tool |
644 |
|
|
Appendix D: Keytips and Accelerator keys |
647 |
|
|
Keytips and Accelerator Keys for Excel |
647 |
|
|
Appendix E: RibbonX Naming Conventions |
651 |
|
|
How Our Naming System Works |
651 |
|
|
Naming Samples |
653 |
|
|
Appendix F: Where to Find Help |
657 |
|
|
Websites with RibbonX Information |
657 |
|
|
Websites Maintained by the Authoring and Tech Edit Team |
659 |
|
|
Newsgroups |
659 |
|
|
Web Forums |
660 |
|
|
Index |
665 |
|