制御 ModuleやClass・UserFormを削除する

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

Option Explicit


Private Sub DeleteComponents()
'************************************
'ModuleやClass・UserFormを削除する
'************************************
'※自分も削除されます。
'NoDeleteObjTyp:削除非対象コレクション
'1  :Module
'2  :ClassModule
'3  :UserForm
'100:Workbook & Sheet
Dim Obj As Object, NoDeleteObjTyp As Integer
NoDeleteObjTyp = 100

For Each Obj In ThisWorkbook.VBProject.VBComponents

    If Obj.Type <> NoDeleteObjTyp Then
        ThisWorkbook.VBProject.VBComponents.Remove Obj
    End If

Next Obj

End Sub

VBProject プロパティ

  • 指定されたブックの Visual Basic プロジェクトを表す VBProject オブジェクトを返します。
  • VBProject プロパティの使用例
  • 次の使用例は、ブックの Visual Basic プロジェクトの名前を変更します。
  • ThisWorkbook.VBProject.Name = "TestProject"

VBComponents プロパティ

  • プロジェクト内に含まれるコンポーネントのコレクションを返します。
  • 解説
  • VBComponents コレクションを使用すると、プロジェクト内のコンポーネントを使用したり、追加したり、あるいは削除することができます。
  • フォーム モジュール、標準モジュールまたはクラス モジュールがコンポーネントとして挙げられます。
  • VBComponent コレクションは、For... Each ステートメントで使用できる標準的なコレクションです。
  • Parent プロパティを使用すると、VBComponents コレクションを含んでいるオブジェクトが返されます。
  • Visual Basic for Applications Edition では、Import メソッドを使用すると、コンポーネントのファイルをプロジェクトに追加することができます。

 

2000年01月01日|[VBサンプルコード]:[制御]