2014-08-12
ExcelVBA覚書 マクロの記述を削除する
Excelファイルを作成するときに、マクロの入ったシートをコピーして作成すると、マクロが残っちゃって困ってしまった。
おまけに、一部のシートしかコピーしてないから、モジュールとかにあるプロシージャとかがないってエラーになってしまう・・・
で、マクロは保存する前に削除しちゃいましょう!なロジックを見つけてきた。
元ネタはこちら
Excelでお仕事! マクロを除いた配布用ブックを作成する。
'======================================================
'ブック上にあるマクロを全部削除しちゃうよロジック
'======================================================
Public Sub DeleteMacroIn(wb As Workbook)
Dim obj As Object '正しい型はVBComponent
Dim lines As Long
For Each obj In wb.VBProject.VBComponents
With obj.CodeModule
lines = .CountOfLines
If lines > 0 Then .DeleteLines 1, lines
End With
Next obj
End Sub