VERSION 1.0 CLASS BEGIN MultiUse = -1 'True END Attribute VB_Name = "Critter" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = True Attribute VB_PredeclaredId = False Attribute VB_Exposed = False Attribute VB_Description = "This is your general purpose critter" Attribute VB_Ext_KEY = "SavedWithClassBuilder" ,"Yes" Attribute VB_Ext_KEY = "Top_Level" ,"Yes" Option Explicit 'local variable(s) to hold property value(s) Private mvarName As String 'local copy Private mvarCritterType As String 'local copy Public Sub Speak() Dim message As String message = "Woof!" message = message + vbCrLf message = message + "My name is " message = message + Me.Name message = message + vbCrLf message = message + "I am a " message = message + Me.CritterType MsgBox message End Sub Public Property Let CritterType(ByVal vData As String) 'used when assigning a value to the property, on the left side of an assignment. 'Syntax: X.CritterType = 5 mvarCritterType = vData End Property Public Property Get CritterType() As String 'used when retrieving value of a property, on the right side of an assignment. 'Syntax: Debug.Print X.CritterType CritterType = mvarCritterType End Property Public Property Let Name(ByVal vData As String) 'used when assigning a value to the property, on the left side of an assignment. 'Syntax: X.Name = 5 mvarName = vData End Property Public Property Get Name() As String 'used when retrieving value of a property, on the right side of an assignment. 'Syntax: Debug.Print X.Name Name = mvarName End Property Private Sub Class_Initialize() MsgBox ("I instantiate, therefore I am...") End Sub Private Sub Class_Terminate() MsgBox ("I fear it... I breathe my last...") End Sub