全モジュールを一括解放する方法を紹介します。
① Visual Baisc プロジェクトへのアクセスを許可します。
② 「Microsoft Visual Basic for Application Extensibility」を参照設定します。
③ 次のプログラムコードを記載します。
Public Sub Sample_RemoveModule_01()
' ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
' 参照設定:
' 「Microsoft Visual Basic for Application Extensibility」
' ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
' このブックのVBProjectをオブジェクト変数に格納する。
Dim Obj As VBIDE.VBProject
Set Obj = ThisWorkbook.VBProject
' 解放対象のモジュール名を配列に設定する。
Dim removeModule(3) As String
removeModule(1) = "UserForm1"
removeModule(2) = "Module2"
removeModule(3) = "Class1"
' モジュールを解放する。
Dim lp As Long
For lp = 1 To UBound(removeModule)
Call Obj.VBComponents.Remove(Obj.VBComponents(removeModule(lp)))
Next
' オブジェクトを破棄する。
Set Obj = Nothing
これを実行すると、モジュールが解放されます。
コメントを残す