Итак, это мой самый первый пост здесь ... будьте осторожны:)
Я пытаюсь понять, как создавать свойства 2-й степени для настраиваемых объектов в Excel VBA. Просто для иллюстрации концепции: предположим, я создаю модуль класса clsPlayer и модуль класса clsTeam.
clsPlayer выглядит так:
Public name As String
Public Age As Long
Public Position As String
Sub displayName()
MsgBox name
End Sub
clsTeam выглядит так:
Private team As Collection
Sub addplayer(p As clsPlayer)
team.Add p
End Sub
Private Sub Class_Initialize()
Set team = New Collection
End Sub
Public Property Get member(index As Long) As clsPlayer
member = team(index)
End Property
Итак, clsTeam содержит коллекцию типа clsPlayer, в которой хранятся все игроки команды. Теперь я хотел бы иметь возможность написать в моем основном приложении что-то вроде этого:
Sub main()
Dim t As clsTeam
Dim p As clsPlayer
Set t = New clsTeam
Set p = New clsPlayer
p.name = "Walter"
p.Age = 17
p.Position = "leftfield"
t.addplayer p
debug.print t.member(1).age
t.member(1).displayName
End Sub
К сожалению, приведенный выше код выдает ошибку «объектная переменная не определена» при вызове Get-Property. Почему это так и что я делаю не так?