【Excel】マクロを使用して「名前」とスタイルの「書式」を標準書式以外をまとめて削除する方法の紹介

Excelファイルの「名前」とスタイルの「書式」を、標準で用意している情報以外、まとめて削除する方法を紹介します。

概要

Excelファイルを使用していると、意図せずにファイルサイズが大きくなっていることはないでしょうか。
色々な原因はありますが、可能性の1つとして以下の項目が膨大になっている可能性があります。

  • 名前管理の「名前」
  • スタイルの「書式」

特に昔から使用しているExcelファイルを更新し続けていると顕著になることが多いです(【注意】:筆者の体験談です)。

「名前」やスタイルの「書式」は手動で削除することもできす。ただし、大量に存在している場合は、1つずつ削除するのは大変です。

このため、Excelのマクロを使用して、まとめて標準で用意している情報以外を削除して初期状態に戻す方法を記載します。

環境

  • Excel2013、Excel 365
    ※他バージョンのExcelでも使用できると思います。

マクロを使用しての一括削除方法

マクロを実行するために「開発」タブを表示します。
「開発タブ」が表示されていない場合は、以下に表示する方法を記載します。

開発タブの表示方法

「開発」タブが表示されていない場合は、以下の手順で表示してください。

  1. 「ファイル」タブから「オプション」、「リボンのユーザー設定」の順番で移動します。
  2. 「リボンのユーザー設定」を表示して、「リボンのユーザ設定」から「メインタブ」を選択します。
  3. 「開発」チェックボックスをオンにして、「OK」を押下してオプション画面を閉じます。

マクロの実行方法

「開発」タブから「Visual Basic」を開いて、ツールバーから「表示」、「コード」の順番で選択します。

表示されたコード画面に、以下に記載する内容をコピーして、ツールバーから「実行」、「Sub/ユーザフォームの実行」を押下して実行してください。

上記によっては10分程度かかることがありますので、時間に余裕のあるときに実行してください。

削除対象のファイルは必ずバックアップしてから実行するようにしてください。
マクロ実行は元に戻すことができません。

Sub delete_style_name()
  On Error Resume Next
  Dim s1, s2
  ' 「スタイル」として登録されている情報から「BuiltIn」以外のスタイルを削除します。
  For Each s1 In ActiveWorkbook.Styles
    If Not s1.BuiltIn Then
      s1.Delete
    End If
  Next
  ' 「名前」として登録されている情報をすべて削除します。
  For Each s2 In ActiveWorkbook.Names
    s2.Delete
  Next
End Sub

マクロの記載内容の解説

スタイルの「書式」については、属性として「BuiltIn」といわれるExcelが標準で用意している情報が存在します。それらについては削除しない(削除することができない)ため、初期状態に戻すことが可能となります。

「名前」については、スタイルの「書式」とは異なり、標準で用意している情報が存在していないため、すべて削除することになります。

削除方法(手動)

画面で操作して削除することも可能です。ただし、少し面倒になりますので、状況に合わせて活用してください。

スタイルの「書式」の削除方法

スタイルの「書式」については、「ホーム」タブ、「スタイル」で削除対象の書式を右クリックして削除することができます。

ただし、画面では1つずつしか削除することができないため、大量に存在する場合は、マクロを使用して削除するほうが簡単になります。

スタイルの「書式」の削除方法

「名前」については、「数式」タブ、「定義された名前」の「名前の管理」から削除対象を選択して「削除」ボタンを押下することで削除することが可能です。「Shift」を押しながら選択することで範囲選択して削除することもできます。

まとめ

スタイルの「書式」、「名前」の削除方法について紹介しました。

Excelファイルは、更新により意図しないファイルサイズになっていることがあります。普段確認することが少ない以下の項目を確認して、不要な情報が存在しないかを確認してみてください。

  • スタイル
  • 名前
  • 条件付き書式

必要のない場合は適宜削除することで、ファイルを開くときのイライラが削減できると思います。