Typeステートメントはユーザー定義型が作れる模様。.Netでよくデータモデルを扱う人間には使い勝手が良さそうです。定義してあればタイプミスしてもコンパイルで引っかかってくれます。テキストデータやレコードの読み込み時なんかで使えそうです。
以下、サンプル。テキストデータから「店舗レコード」型配列を作成するイメージです。
'店舗レコード Type StoreRecord StoreCd As String Name As String OpenDate As String CloseDate As String End Type '店舗レコード作成 Function CreateStoreRecords(lines() As String) As StoreRecord() Dim fso As FileSystemObject Set fso = New FileSystemObject Dim stream As TextStream Set stream = fso.OpenTextFile(fileName, ForReading) Dim results() As StoreRecord Dim count As Integer count = 0 Do Until stream.AtEndOfLine Dim elements() As String elements = Split(stream.readLine, ",") Dim store As StoreRecord store.StoreCd = Format(elements(0), "000000") store.Name = elements(1) store.OpenDate = CDate(elements(2)) store.CloseDate = CDate(elements(3)) ReDim Preserve results(count) results(count) = store count = count + 1 Loop Set stream = Nothing Set fso = Nothing CreateStoreRecords = results End Function
普段はあまりVBAを書くことがありませんが、たまにこういう発見も悪くないなぁって感じです。まぁ昔作った物を異常に修正したくなったりしますが…。
ちなみに久しぶりにSyntax Highlighter使ったらまったくもって使い方を忘れた上に、なんだかうまいこと投稿できず、削除と投稿を繰り返したりしました。