クラスでレコード(bean)イメージを作成する
複数メンバのある構造体(Type)を配列にするのであれば、クラスとコレクションを使ったほうが便利に使えます。
JavaとかC#な方はこちらのほうが馴染みがありますね。
クラスはパブリックな変数にするかプライベート変数をプロパティプロシージャで公開するか好みが出ます。
公開のみとか代入のみとかできるプロパティプロシージャがおすすめですが、コンストラクタがしょぼすぎなので
パブリックな変数でちゃっちゃと作ってしまうものアリだと思います。
※ReadOnlyのプロパティにした場合、通常、別途設定するメソッドなどを作る必要があります。Javaなどではコンストラクタで入れ込むのが普通ですがVBAではあまり。。。ねぇ。
Class1.cls
Option Explicit
'プライベートな変数をプロパティプロシージャで公開するも良し
Private m_name As String
'直接変数を公開するも良し
Public Age As Long
Public Property Get Name() As String
Name = m_name
End Property
Public Property Let Name(ByVal vNewValue As String)
m_name = vNewValue
End Property
Module1.bas
<pre>
Attribute VB_Name = "Module1"
Option Explicit
Sub a()
Dim list As Collection
Dim c As Class1
Set list = New Collection
Set c = New Class1
c.Name = "ああああ"
c.Age = 17
list.Add c
Set c = Nothing
Set c = New Class1
c.Name = "いいいい"
c.Age = 32
list.Add c
Set c = Nothing
'リストの内容を列挙
For Each c In list
MsgBox c.Name & c.Age
Next
Set list = Nothing
End Sub
他のソースをごらんになりたい方はこちらへ
Excelを便利にする250以上の機能を体系化したアドインはこちらです。
「RelaxTools Addin」窓の杜大賞受賞ソフト
http://software.opensquare.net/relaxtools/