VBA

Excelのスタイルをまとめて削除する

『スタイル』は別のブックからシートをコピーや移動したときなどに、自動的に追加されてしまうため、意図せずExcelの動作を重たくしたり、エラーを発生させることもあります。
VBAマクロを使用することで、一括削除することができます。不要なスタイルを残さないよう、こまめに実施することをお勧めします。

本ページではWorkbookオブジェクトのStylesプロパティを使用してビルトインスタイル(標準で登録されているスタイル)以外のスタイルを削除する方法を紹介します。

コード

解説

WorkbookオブジェクトのStylesプロパティを使用します。

ブックで設定されているすべてのスタイルが含まれているため、For Each文を使ってループします。

ビルトインスタイルは「標準」や「見出し1」といったデフォルトで組み込まれているスタイルのことを指しています。全てのスタイルを削除してしまうと「標準」以外残らなくてなってしまうため、ビルトインスタイルは残すように判定を実施しています。

全てのスタイルを削除するオプションはないため、登録されているスタイルを1つずつ削除します。

If文の判定を削除すればすべてのスタイルを削除することも可能です。

補足

先頭の「On Error Resume Next」はスタイルの削除に失敗しても続けるために必要なコードになります。
消してしまうとエラーで停止する場合もあるため、セットで記述するようにしましょう。

注意事項

スタイルの数が増えるほど時間が掛かります。スタイルの数によっては完了までに時間が掛かる場合がありますのでご注意ください。

使っていないスタイルを削除したい場合は、空白のブックを新規作成し、すべてのシートをコピーすることで使用しているスタイルだけを残すことも可能です。

参考

Workbook.Styles プロパティ (Excel) | Microsoft Learn
https://learn.microsoft.com/ja-jp/office/vba/api/excel.workbook.styles

Styles オブジェクト (Excel) | Microsoft Learn
https://learn.microsoft.com/ja-jp/office/vba/api/excel.styles