アクティブワークブックの標準モジュールを削除します。
以後の操作が出来なくなってしまうため、ツールバーとモジュール関連は削除しないよう指定します。
削除する前に必ずバックアップを取るように。(ワークブック、モジュール)
- 参照設定 で「Microsoft Scripting Runtime」にチェックを付けます。
- 削除しないモジュールはモジュール名の頭に A ( a ) を付けます。
AToolBar.Bas
AModuleExport.Bas
AModuleImport.Bas
AModuleRemove.Bas
モジュール削除
Option Explicit
Sub KMoRemove00()
''モジュール削除 Start 2002/5/22
Dim mypZname As String 'Workbook Name
Dim mypZMoname1 As String '削除しないモジュール名の先頭文字
Dim mypZMoname2 As String '削除しないモジュール名の先頭文字
mypZname = ActiveWorkbook.Name
mypZMoname1 = "A"
mypZMoname2 = "a"
KMoRemove01 mypZname, mypZMoname1, mypZMoname2
End Sub
Sub KMoRemove01(mypBookName As String, mypZM1 As String, mypZM2 As String)
''モジュール削除 2002/5/22
Dim mypVBAComp As Object
Dim mypMoName As String 'モジュール名
Dim mypMoType As Integer 'モジュール型 1:標準 2:Class 3:Form
Dim mypMoCount As Integer 'モジュール数
Dim mypBookA As Workbook
Dim mypTitle As String
Dim mypMsg1 As String
Dim mypMsg2 As String
Dim mypRetMsg As Integer
Set mypBookA = Workbooks.Item(mypBookName)
mypTitle = "モジュール削除"
mypMsg1 = "削除 終了 "
mypMsg2 = "削除しますか。? "
mypMsg1 = mypMsg1 & vbCrLf & vbCrLf & mypBookName & " [ "
mypMsg2 = mypMsg2 & vbCrLf & vbCrLf & mypBookName & " [ "
''モジュール削除の確認
For Each mypVBAComp In ActiveWorkbook.VBProject.VBComponents
mypMoType = mypVBAComp.Type
If mypMoType = 1 Then
mypMoName = mypVBAComp.Name
If Left(mypMoName, 1) = mypZM1 Or Left(mypMoName, 1) = mypZM2 Then
Else
mypMoCount = mypMoCount + 1
End If
End If
Next
Beep
mypMsg2 = mypMsg2 & mypMoCount & " ]"
mypRetMsg = MsgBox(mypMsg2, vbYesNo + vbQuestion, mypTitle)
If mypRetMsg = vbNo Then
End
End If
''モジュール削除
mypMoCount = 0
For Each mypVBAComp In ActiveWorkbook.VBProject.VBComponents
mypMoType = mypVBAComp.Type
If mypMoType = 1 Then
mypMoName = mypVBAComp.Name
If Left(mypMoName, 1) = mypZM1 Or Left(mypMoName, 1) = mypZM2 Then
Else
mypMoCount = mypMoCount + 1
''マクロモジュール削除
mypBookA.VBProject.VBComponents.Remove _
mypBookA.VBProject.VBComponents(mypMoName)
End If
End If
Next
mypMsg1 = mypMsg1 & mypMoCount & " ]"
MsgBox mypMsg1, vbInformation, mypTitle
End Sub