Если бы вы собирали все частные свойства в частную коллекцию, используя ключ при инициализации, то вы могли бы использовать ключ для доступа к значению частного свойства. Имейте в виду, что вы ослабляете свою типизацию, и нет никакого реального способа гарантировать, что вы передадите правильную строку arg1, чтобы получить член коллекции с этим подходом. YMMV
Private strID As String
Private dblAmt As Double
Private dtMatDate As Date
Private myProperties As Collection
Private Sub Class_Initialize()
Set myProperties = New Collection
With myProperties
.Add strID, "ID"
.Add dblAmt, Key:="Amount"
.Add dtMatDate, Key:="MatDate"
End With
End Sub
Private Sub Class_Terminate()
Set myProperties = Nothing
End Sub
Property Get PropertyValue(ByVal arg1 As String) As Variant
PropertyValue = myProperties(arg1)
End Property
Property Let PropertyValue(ByVal arg1 As String, ByVal arg2 As Variant)
myProperties(arg1) = arg2
End Property