Most developers can think of dozens of ways in which they'd like to modify Visual Basic's integrated development environment (or IDE) in order to work more productively. These enhancements can range from simple items (like determining the version of Visual Basic for Applications used by the IDE, or clearing the Immediate window) to much more involved ones (like developing a utility that allows the tab order of the individual controls on a form to be set easily).
Just as the major Microsoft Office applications expose their functionality through their object models, Visual Basic's development environment also exposes its functionality through the Visual Basic Extensibility Model. Unfortunately, though, the model is poorly documented and poorly understood. And most programmers simply don't have the time to sift through the documentation and experiment using trial and error to extend the IDE.
Developing Visual Basic Add-ins addresses this lack of adequate documentation by showing how to develop add-ins for Visual Basic Versions 5.0 and 6.0 and by providing numerous coding examples of simple but useful add-ins.
The book is divided into two parts. The first part, Add-in Basics, discusses the mechanics of add-in creation. This includes such topics as:
Retrieving a reference to the VB IDE
Registering an add-in
Activating an add-in
Making an add-in's functionality accessible through a menu option or toolbar button
Developing an add-in requires creativity, since it requires a programmer to both identify a shortcoming of the IDE and implement some means of enhancing it. The second part of the book, The Extensibility Model, prepares you for this creative part of add-in development by focusing on the VB IDE Extensibility Model. Individual chapters provide in-depth coverage of specific categories of objects, such as user interface objects, project-related objects, and form and control objects.
With Developing Visual Basic Add-ins, you can finally make all of the enhancements to the VB IDE that will allow you to program more effectively.