Page 337 - Microsoft Office Excel 2003 Programming Inside Out
P. 337
Developing Class Modules
Special Events for Classes
VBA defines two special events for all classes, the Initialize event and the Terminate event.
The Class_Initialize event contains code that will be run when an object is created based on
this class. This event is useful for initializing class-level variables including executing any
Set New statements needed to create any objects that are needed by this object.
Set ObjectVar = New MyClass
The Class_Terminate event contains code that will be run just before an object is destroyed.
This event is an ideal place to destroy any objects that are local to the class by setting them to Chapter 14
Nothing using code like this:
Set ObjectVar = Nothing
Note The Class_Initialize and Class_Terminate events are fired only when the actual
object is created or destroyed. Merely setting one object variable to another will not trigger
the Class_Initialize event. If two or more object variables point to the same object, merely
setting one object variable to Nothing will not trigger the Class_Terminate event.
Resolving References
Sometimes you’ll find yourself in a situation where you have a local variable and a class-level
variable with the same name. This frequently happens when you want to give a parameter in
a method the same name as a property. To differentiate between a class-level variable and a
local variable or parameter, you can prefix the class level variable with Me. as in the following
example:
If Me.Name <> Name Then
In this statement, the variable Me.Name refers to a class-level variable, whereas the unquali
fied variable Name refers to a local variable or parameter.
Tip Identifying Things That Belong to Me
The keyword Me can also be used to qualify any public or private element of a class from
the code within that class, including class-level variables, subroutines, functions, and prop
erty routines.
311
Part 4: Advanced VBA