| 
    
     |  | ▼ichinose さん: 
 Resありがとうございます。
 提示して頂いたコードでClass_Terminate()が実行されていることを
 確認することができました。
 ありがとうございました。
 
 今回はMsgBoxで確認するコードをClass_Terminateにコメントアウトして追記しました。
 
 '-------
 'Class名 Cont_Coll
 'Control Collectionの意
 
 Private m_Coll As Collection 'Cont_Coll内部のコレクション
 Private m_Item(3) As Coll_Event '子クラスの要素数を指定
 
 'クラスが作成されたときにCollection作成
 Private Sub Class_Initialize()
 Set m_Coll = New Collection
 End Sub
 
 'コレクションへ追加するプロパティ
 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
 
 
 Private Sub Class_Terminate()
 Dim i As Integer
 For i = 1 To m_Coll.Count
 Set m_Item(i) = Nothing
 Next i
 
 'MsgBox "Cont_Coll開放" '確認用
 End Sub
 
 '-------
 '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
 
 Private Sub Class_Terminate()
 'MsgBox Cont_obj.Caption & "のColl_Event開放" '確認用
 End Sub
 
 'ここからEvent処理を書く
 
 Private Sub Cont_obj_Click()
 MsgBox "クラスモジュールのイベント" & vbCr & Cont_obj.Caption
 End Sub
 
 |  |