| 
    
     |  | こちらのモーグ様のサイトを参照しながら、 クラスモジュールの使い方を勉強しています。
 http://www.moug.net/skillup/opm/opm08-01.htm
 
 自作のクラスからサブクラス(言い方あってます?)を
 作成するように作ったのですが、動作は正常にできました。
 終了するときに本当にクラスモジュールが解放されているか
 確認する方法があれば教えてください。
 
 Cont_Collクラスが、Coll_Eventを作成
 Cont_Collが開放されるときに、作成されたColl_Eventも開放したいです。
 
 UserForm1にCommandButtonを3つ、Labelを1つ作成
 
 UserForm1モジュール
 '---------
 Private MyColl As New Cont_Coll
 
 
 Private Sub Label1_Click()
 
 MyColl.Con_Item(1).Caption = "テスト"
 
 End Sub
 
 
 Private Sub UserForm_Initialize()
 
 Dim obj As MSForms.Control
 
 For Each obj In Me.Controls
 If TypeName(obj) = "CommandButton" Then
 MyColl.Con_Add = obj
 End If
 Next obj
 
 End Sub
 
 Private Sub UserForm_Terminate()
 Set MyColl = Nothing
 End Sub
 '------------
 
 クラスモジュール"Cont_Coll"
 '-----------
 'Class名 Cont_Coll
 'Control Collectionの意
 
 Private m_Coll As New Collection 'Cont_Coll内部のコレクション
 Private m_Item(3) As New Coll_Event 'サブクラスの要素数も指定
 
 'コレクションへ追加するプロパティ
 Public Property Let Con_Add(ByVal NewCont As MSForms.Control)
 m_Coll.Add Item:=NewCont
 Set m_Item(m_Coll.Count) = New Coll_Event
 m_Item(m_Coll.Count).ContItem = NewCont
 End Property
 
 'コレクションをカウントするプロパティ
 Public Property Get Con_Count()
 Con_Count = m_Coll.Count
 End Property
 
 'コレクションItemを参照するプロパティ
 Public Property Get Con_Item(ByRef m_Index As Integer)
 Set Con_Item = m_Coll(m_Index)
 End Property
 
 'Cont_Collが終了するときにColl_Eventで定義したm_Itemを全て開放したい
 'ここが自信ありません。
 Private Sub Class_Terminate()
 Dim i As Integer
 For i = 1 To m_Coll.Count
 Set m_Item(i) = Nothing
 Next i
 End Sub
 '----------
 
 
 クラスモジュール"Coll_Event"
 '----------
 'Class名 Coll_Event
 'Collction Eventの意
 
 Private WithEvents Cont_obj As MSForms.CommandButton
 
 Public Property Let ContItem(ByVal NewCont As MSForms.CommandButton)
 Set Cont_obj = NewCont
 End Property
 
 'ここからEvent処理を書く
 
 Private Sub Cont_obj_Click()
 MsgBox "クラスモジュールのイベント" & vbCr & Cont_obj.Caption
 End Sub
 '-------------
 
 |  |