前提
・クラスのメンバは基本的にPublicにする。
→ 少なくともVBAにおいては 、Privateにしてゲッター及びセッターを記載するのは
意味が無い。結局Publicにしているのと同じ
・クラスのメンバを外部から設定不可にしたい場合、
┗Privateにしてセッターを記載しない。ゲッターのみ記載する
┗コンストラクタ内で設定する
サンプルプログラム
●クラスモジュール「ManClass」の定義
Option Explicit
Private Sex_ As String
Public Name As String
Public Age As String
'コンストラクタ
Private Sub Class_Initialize()
Sex_ = "男"
End Sub
'メンバ「Sex_」のゲッター
Public Property Get Sex() As String
Sex = Sex_
End Property
'メンバ「Sex_」はprivate、かつセッター未記載のため、外部からは設定不可
'コンストラクタ内でのみ設定可能
●クラスモジュール「ManClass」の使用
Sub test()
Dim man As manClass
'クラスをインスタンス化してメンバを設定
Set man = New manClass
man.Name = "鈴木"
man.Age = "30歳"
'セルに設定
Cells(1, 1) = man.Name
Cells(2, 1) = man.Age
Cells(3, 1) = man.Sex
End Sub