VBAから一括してマクロを削除するコード


調べるとそのまま使えるコードがありました。
http://chaichan.web.infoseek.co.jp/vbtips/VBMemo2006081403.htm
※ セキュリティ設定と参照設定は必要。

Sub Macro()
    Dim objVBCOMPO As Object
    For Each objVBCOMPO In ActiveWorkbook.VBProject.VBComponents
        With objVBCOMPO.CodeModule
            If .CountOfLines <> 0 Then .DeleteLines 1, .CountOfLines
        End With
        If (objVBCOMPO.Type = vbext_ct_StdModule Or objVBCOMPO.Type = vbext_ct_MSForm) Then
            ActiveWorkbook.VBProject.VBComponents.Remove objVBCOMPO
        End If
    Next objVBCOMPO
    Set objVBCOMPO = Nothing
End Sub


このコードを実行すると、標準モジュールだけじゃなくてシートモジュールとかのコードも削除して
自分自身も消えてしまうという。