ユーザー定義型変数(構造体)はDicitonaryに代入が出来ない
ユーザー定義型変数(構造体)をDictionaryやCollectionに格納しようとすると
以下コンパイルエラーが発生します。

ユーザー定義型変数はDictionaryに格納不可のサンプルコード
下記コードを実行するとコンパイルエラーが発生します。
コンパイル エラー:
パブリック オブジェクト モジュールで定義されたユーザー定義型に限り、変数に割り当てることができ、実行時バインディングの関数に渡すことができます。
'要参照設定 Microsoft Scripting Runtime
Public Type myType
tName As String
tAge As Long
tSex As String
End Type
Public Sub sample()
Dim dic As Dictionary
Set dic = New Dictionary
Dim pInfo As myType
dic.Add pInfo, 1
End Sub
ユーザー定義型変数をClass化する事で回避可能です
'クラスモジュール(Class1)に記載
Public tName As String
Public tAge As Long
Public tSex As String
'標準モジュールに記載
Public Sub sample()
Dim dic As Dictionary
Set dic = New Dictionary
Dim pInfo As New Class1
dic.Add pInfo, 1
End Sub



コメント