『スタイル』は別のブックからシートをコピーや移動したときなどに、自動的に追加されてしまうため、意図せずExcelの動作を重たくしたり、エラーを発生させることもあります。
VBAマクロを使用することで、一括削除することができます。不要なスタイルを残さないよう、こまめに実施することをお勧めします。
本ページではWorkbookオブジェクトのStylesプロパティを使用してビルトインスタイル(標準で登録されているスタイル)以外のスタイルを削除する方法を紹介します。
コード
Sub スタイル削除()
Dim myStyle As Style
For Each myStyle In ActiveWorkbook.Styles
'ビルトインスタイル以外を削除
If myStyle.BuiltIn = False Then
myStyle.Delete
End If
Next
End Sub
解説
WorkbookオブジェクトのStylesプロパティを使用します。
ブックで設定されているすべてのスタイルが含まれているため、For Each文を使ってループします。For Each myStyle In ActiveWorkbook.Styles
ビルトインスタイルは「標準」や「見出し1」といったデフォルトで組み込まれているスタイルのことを指しています。
全てのスタイルを削除してしまうと「標準」以外残らなくてなってしまうため、ビルトインスタイルは残すように判定を実施しています。If myStyle.BuiltIn = False Then
全てのスタイルを削除するオプションはないため、登録されているスタイルを1つずつ削除します。myStyle.Delete
If文の判定を削除すればすべてのスタイルを削除することも可能です。
注意事項
スタイルの数が増えるほど時間が掛かります。スタイルの数によっては完了までに時間が掛かる場合がありますのでご注意ください。
使っていないスタイルを削除したい場合は、空白のブックを新規作成し、すべてのシートをコピーすることで使用しているスタイルだけを残すことも可能です。
参考
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