|  
                                             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 
  
     |