Klassischer Gedanken und Design-Fehler.
Du kriegst nicht die Referenz auf den Member, sondern die Referenz auf den Member-Wert.
So sollte es aussehen:
Sub AddDelimiter(ByRef Person As CPerson, ByVal del As String, Optional PropertyName)
If IsMissing(PropertyName) Then
Person.Firstname = del & Person.Firstname & del
Else
Call CallByName( _
Person, _
PropertyName, _
VbLet, _
del & CallByName(Person, PropertyName, VbGet) & del)
End If
End Sub
Sub Test()
Dim Person As CPerson
Set Person = New CPerson
Person.Firstname = "Max"
Person.Surname = "Mustermann"
AddDelimiter Person, "-"
Debug.Print Person.Name
End Sub
Den Sinn des Code stelle ich nicht weiter in Frage.
Grüße
|