User Tools

Site Tools


vba:propertyletget

[VBA] Class Property Let/Get

VBA unterscheidet zwischen Objekten und 'normalen' Datentypen. So auch bei den Propeties einer UserClass.
Je nachdem muss man mit LET oder mit SET arbeiten. Wenn man jedoch nicht weiss, ob ein Objekt oder ein Type daherkommt und das für die Klasse auch nicht relevant ist, kann man auch beide Versionen auf dasselbe Property umsetzen.

Private src AS Variant      'Array, Collection oder Disctionary
 
'/**
' * Property Source beinhaltet die Quellliste. Das kann ein Array, eine Collection oder ein Dictionary sein.
' * Die letzteren Beide sind Objekte
' */
 
' Setzen eines Types
Public Property Let Source(ByRef iList As Variant)  'Setzen für Arrays
    me.src = iList
End Property
' Setzen eines Objektes
Public Property Set Source(ByRef iList As Variant)  'Setzen für Objekte
    Set me.src = iList
End Property
 
' Und auch wieder ausgeben. Hier muss ich im Code nach Objekt/Type unterscheiden
Public Property Get Source() As Variant
    If isObject(me.src) Then 
        Set Source = me.src   'Objekt
    Else
        Source = me.src       'Type
    End iF
End Property
Für den Get eignet sich dann auch die Funktion [VBA] ref()
Siehe auch das Property Source in meiner Iterator-Klasse
vba/propertyletget.txt · Last modified: 21.12.2015 10:39:32 by yaslaw