NetCommonsとは関係ありません。個人的メモ
Private Sub CommandButton実行_Click()
Dim my住所録 As Class住所録: Set my住所録 = New Class住所録
With Sheet1
Dim i As Long: i = 2
Do While .Cells(i, 1).Value <> ""
Dim p As ClassPerson: Set p = New ClassPerson
p.Initialize .Range(.Cells(i, 1), .Cells(i, 4))
my住所録.addPerson p, p.Name
i = i + 1
Loop
End With
'クラスにもっているコレクションの要素を取得
Debug.Print "my住所録"
set p = my住所録.getPerson("Bob")
Debug.Print p.id
End Sub
■■ classPerson ■■
Public FirstName As String
Public Gender As String
Public Birthday As String
Public Sub Greet()
MsgBox Me.FirstName & "です、こんにちは!"
End Sub
Public Sub Initialize(ByVal rng As Range)
id_ = rng(1).Value
FirstName = rng(2).Value
Gender = rng(3).Value
Birthday = rng(4).Value
End Sub
Public Property Get IsMale() As Boolean
IsMale = (Me.Gender = "male")
End Property
Public Property Get Id() As String
Id = id_
End Property
Public Property Get Name() As String
Name = FirstName
End Property
Public Property Let Id(ByVal newId As String)
If id_ <> "" Then
Debug.Print "Idは上書きすることはできません"
Else
id_ = newId
End If
End Property
■■ class住所録 ■■
Private Persons As Collection
Private Sub Class_Initialize()
Set Persons = New Collection
End Sub
Public Function getPerson(名前 As String) As ClassPerson
Set getPerson = Persons(名前)
End Function
Public Sub addPerson(人 As Object, 名前 As String)
Persons.Add 人, 名前
End Sub