スタイル、便利な時もあるんですが、
他のブックからデータをコピペ、シートをコピーした時に、
いつの間にかスタイルも入ってきてしまい、
増殖に増殖を重ね、
セルの書式が設定できなくなる、
というウイルスのような側面もある。。。
しかも、スタイル名がおかしいのか、
削除ができなくなっているものもある。。。
どうしても不要なスタイルが削除したくて、
見つけた削除手順に少し不備があったので、
自分で発見した対応方法を公開してみます。
※先にVBAでスタイルを削除する方法について
For Each を使うと、スタイルが多い時にやたらと遅くなるので、
For i = 1 to Book.Styles.Count と、インデックスを使用した方が早くなるかもしれません。
<削除できないスタイルを削除する方法>
①ブックをコピーし、拡張子を .Zip に変更する。
②Zip内 → xl フォルダ → Style.xml を外にコピペ
※ブックが xlsb の場合、一旦 xlsm で保存し、①から実施
③外に出した Style.xml を開き、
『<cellStyles』で検索
④『cellStyle』タグでスタイルの情報が記載されているので、
削除できなかったスタイルの name の情報を変更する
例:「name = Currency (0) 」 ⇒ 「name = CurrencyA」
※名前の末尾にある半角スペースは除去してください
※名前の末尾にナンバー(例:1、(0)、[0])がある場合、除去してください
※Currency、Comma等、組込まれてそうな名前にはしないでください
⑤Zip内の Style.xml に上書きコピーし、
Zipの拡張子をZip化前の拡張子に戻し、
削除できなかったスタイルを削除して終了。
<図解>