現在、アイテムのコレクションを構築しようとしています。コレクションを別のコレクション内のアイテムとして追加する - クラス - Excel VBA
私は2つのコレクションを設定し、それぞれに対してクラスモジュールを作成しました。 col1 - (Class1にリンクされています)。そして、col2 - 以下(クラス2にリンクされている)
は、私のクラスモジュールです:
のClass1:
Option Explicit
Private pTestC1A As String
Private pTestC1B As Collection
Public Property Let TestC1A(Value As String)
pTestC1A = Value
End Property
Public Property Get TestC1A() As String
TestC1A = pTestC1A
End Property
Property Set TestC1B(col2 As Collection)
Set pTestC1B = col2
End Property
Property Get TestC1BElements(v As Integer) As String
TestC1B = pTestC1B(v)
End Property
クラス2:以下
Option Explicit
Private pTestC2A As String
Public Property Let TestC2A(Value As String)
pTestC2A = Value
End Property
Public Property Get TestC2A() As String
TestC2A = pTestC2A
End Property
は私モジュールですコード
上記のコードを1としてSub Test()
Set col1 = New Collection
Set col2 = New Collection
Set cV = New Class1
cV.TestC1A = "First Collection"
Set aV = New Class2
aV.TestC2A = "Second Collection"
sKey1 = CStr(aV.TestC2A)
col2.Add aV, sKey1
Set cV.TestC1B = col2
sKey2 = CStr(cV.TestC1A)
col1.Add cV, sKey2
If Err.Number = 457 Then
MsgBox "Error Occured"
ElseIf Err.Number <> 0 Then Stop
End If
Err.Clear
Msgbox col1(1).TestC1A ' works fine
Msgbox col2(1).TestC2A ' works file
MsgBox col1(1).TestC1B(1).TestC2A ' does not work - 450 run-time error
End Sub
、私は成功し、私はそれぞれのコレクションを参照する場合の項目の値を取得することができるよ、しかし私は実行を「引数の数が間違っまたは無効なプロパティの割り当て」を取得していますネストされた方法でアイテムの値を取得しようとすると、タイムアウトエラーが発生します。
誰かが私が間違っているところを指摘し、おそらくクラスモジュールがプロパティセットを処理する方法を明らかにすることができれば幸いです。&コレクションのパラメータを取得します。
ニースの回答!追加するものはありません!;-) –
非常に明確な、おかげであなたの迅速なヘルプのための多くの。高く評価!それは今、完璧に動作します。 – CaptainABC
@ Mat'sMugありがとう! :D – CallumDA