The Office applications are powerful tools created for a specific purpose, such as word processing or performing a large number of complex calculations. Even so, people expect them to be able to do “everything”. Since Microsoft wants us to buy Office and not use other word processing, spreadsheet, presentation or e-mail software, it has historically tried to meet as many expectations as possible (not always with great success).
As a result, the user interfaces and the object models tend to be large and complex, especially Word’s.
Even though Office is sold as a “suite”, all the core applications originated separately, most during the early 1990s. Internally the applications follow different philosophies, as best met the needs of the users when the feature was designed. This is also reflected in the programming interfaces (“object models” or “APIs”, depending on what programming background you come from). Word, Excel and PowerPoint tend to do the same thing differently, which can be confusing for developers coming from outside Office. In more recent versions, Microsoft has tried to provide common interfaces for things such as opening, saving and printing documents. As a result some applications have lost functionality while others have gained – the changes causing confusion for end-users and experienced Office developers.
What’s more, the way these object models are constructed bases to a large extent on how the user works with the Office application. For a developer with no end-user background, the logic behind many parts of the object models is baffling.
Given all these factors, finding information to achieve a goal or solve a problem can be challenging. It’s important to know where to go for information and to ask questions – one-stop shopping isn’t an option.
Having experienced “the pain”, I decided to add a Link page to this blog site with links to the forums and web sites I consult most frequently when developing and assisting people on the MSDN forums. May it help you accomplish your goals more quickly :-)
Cindy Meister Office Developer MVP