The VBE exposes events a little differently than most Visual Basic
objects. The VBE object contains an Events collection that holds event
handlers for VBProjects, VBComponents, VBControls and References.
These are VBProjectsEvents, VBComponentEvents, VBControlsEvents and
ReferencesEvents, respectively. To expose the events of a specific VBE
object, you create a variable based on the object's event counterpart
and use the WithEvents keyword. Under these circumstances, Visual Basic
then allows you to select the variable's events in the Code window. For
instance, after setting a reference to the Visual Basic 6.0 Extensibility
Library, to expose the VBProjectEvents' events, you declare
Public WithEvents mobjProjEvents As VBIDE.VBProjectsEvents
Then, to create the appropriate variable, you'd use
Public mobjVB As VBIDE.VBE
Set mobjVB = Application
Set mobjProjEvents = mobjVB.Events.VBProjectsEvents
Once you have the variable in place, you can respond to its events. For
instance, suppose you want respond with code every time the user
activated an item, you'd use the following event:
Private Sub mobjProjEvents_ItemActivated(ByVal _
VBProject As VBIDE.VBProject)
MsgBox "Triggered."
End Sub