ライブラリ

削除できないスタイル

スタイル、便利な時もあるんですが、
他のブックからデータをコピペ、シートをコピーした時に、
いつの間にかスタイルも入ってきてしまい、
増殖に増殖を重ね、
セルの書式が設定できなくなる、
というウイルスのような側面もある。。。

しかも、スタイル名がおかしいのか、
削除ができなくなっているものもある。。。

どうしても不要なスタイルが削除したくて、
見つけた削除手順に少し不備があったので、
自分で発見した対応方法を公開してみます。

※先に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化前の拡張子に戻し、
   削除できなかったスタイルを削除して終了。

 

<図解>

StyleDelete.png

Bug   2019/04/05   shono

この記事へのコメント

コメントを送る

 
※ メールは公開されません
Loading...
 画像の文字を入力してください