Las propiedades se crean con las instrucciones Property Get, Property Let y Property Set.
Con Property Get se devuelve el valor de una propiedad, con Property Let estableces una propiedad y con Property Set se establece una propiedad de objeto.
Por ejemplo:
Private sCaption As String
Property Get Caption() As String
Caption = sCaption
End property
Property Let Caption(NewVal As String)
sCaption = NewVal
End Property
Suponiendo que eso está un control llamado MyControl, funcionaría de la siguiente manera:
Cuando desde el código se consulta la propiedad, es decir:
Dim sData$
sData = MyControl.Caption
En este caso el programa llama a Property Get, si se depura el código paso a paso (apretando F8) se puede ver bien lo que pasa.
En el caso que se establezcla una propiedad el programa llama a Property Let, sería el siguiente caso:
MyControl.Caption = "Prueba de Property Let"
El caso de Property Set es el mismo que property Let, pero la diferencia es que se llama cuando se usa la instrucción Set para asignar un objeto. Seria el siguiente caso, suponiendo que hay una propiedad Font:
Set MyControl.Font = Me.Font
Y se implementaría en la clase de la siguiente manera:
Property Get Font()As Font
Set Font = UserControl.Font
End Property
Property Set Font(NewVal As Font)
Set UserControl.Font = NewVal
End property
Por último, en el caso de propiedades Variant hay que usar los tres (Get, Let y Set), ya que se puede asignar cualquier tipo de variable.
Saludos.