Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


43585 / 76732 ←次へ | 前へ→

【38194】クラスの解放を確認したい
質問  ハチ  - 06/5/29(月) 14:44 -

引用なし
パスワード
   こちらのモーグ様のサイトを参照しながら、
クラスモジュールの使い方を勉強しています。
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
'-------------
1 hits

【38194】クラスの解放を確認したい ハチ 06/5/29(月) 14:44 質問
【38202】Re:クラスの解放を確認したい 角田 06/5/29(月) 17:39 回答
【38207】Re:クラスの解放を確認したい ichinose 06/5/29(月) 18:08 発言
【38210】Re:クラスの解放を確認したい ハチ 06/5/29(月) 19:13 お礼
【38209】Re:クラスの解放を確認したい ハチ 06/5/29(月) 19:06 お礼
【38211】Re:そういうのは、もう作ってます 角田 06/5/29(月) 19:17 回答
【38213】Re:そういうのは、もう作ってます ハチ 06/5/29(月) 19:29 お礼
【38208】Re:クラスの解放を確認したい neptune 06/5/29(月) 18:46 回答
【38212】Re:クラスの解放を確認したい ハチ 06/5/29(月) 19:19 お礼

43585 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free