Excel ブックの不要な名前定義・スタイル定義を削除するマクロ

古くから使い回されている Excel のテンプレートファイルを使っていると、使われていない名前定義やバグったスタイル定義などが大量に残っていて、そのせいで動作が遅くなっていたりファイルサイズを余計に食っていたりする。

こうした不要な定義情報を消すためのマクロを以下に用意した。個人用マクロブックにでも入れておき、綺麗にしたいブックを開いた状態で実行してやれば良い。

' 不要な名前を削除
Sub DeleteNames()
  On Error Resume Next
  Dim n
  For Each n In ActiveWorkbook.Names
    If InStr(n.Name, "Print_Area") = 0 And InStr(n.Name, "Print_Titles") = 0 And Not n.BuiltIn Then
      n.Delete
    End If
  Next
End Sub

' 不要なスタイルを削除
Sub DeleteStyles()
  On Error Resume Next
  Dim s
  For Each s In ActiveWorkbook.Styles
    If Not s.BuiltIn Then
      s.Delete
    End If
  Next
End Sub

名前定義の方は、印刷範囲の指定のための名前定義だけ除外するようにした。問題があれば適宜加工して使ってほしい。

ほんとこれだけで 1/3 くらいファイルサイズが軽くなったりするブックもあるので、使い回しているテンプレートブックは一度綺麗にしておくとよろし。