2010年01月10日

大量のセルのスタイルを一括削除する。excel

セルのスタイルが「アクセント1」「アクセント2」等々、類似の名前で増殖してしまったエクセルシートの修正を依頼された。見てみるとスタイル書式が4000以上登録されている。ブックの中で使用していない書式が何故か増殖しているようだ。
Microsoft Office Onlineで検索してみたが検索用語の選択が悪いのか探せなかった。いくつか類似の例を見つけたがいずれも原因不明。解決は増えたスタイルを削除するしかないようなので、スタイル一括削除マクロ作成した。これでユーザースタイル定義も一括削除できる。該当のエクセルで実行してみたが、ファイルサイズが半分になった。ただ、原因不明なのでまた発生するのかも。
エクセルシートのスタイルを一括削除するマクロ

'Default Style Shippo
Sub Default_Style()
Dim dss
On Error Resume Next
For Each dss In ActiveWorkBook.Styles
If Not dss.BuiltIn Then
Select Case dss.Name
Case "20% - Accent1","etc etc..."
'削除したくないスタイルがあるときは、ここに書いておく
Case Else
dss.Delete
End Select
End If
Next
End Sub
posted by shippo at 10:20| Comment(5) | TrackBack(0) | プログラム
この記事へのコメント
ありがとうございました。腱鞘炎になりそうでした。
Posted by 青楓 at 2010年06月23日 13:00
大変参考になりました。助かりました。
使用中のスタイルを除いて削除する方法がないかを調べていますが、今のところ解決できていません。ご存知ないですか
Posted by 大西 at 2012年09月14日 13:50
さっぱり原因が分からず、困り果てていましたので
大変助かりました!!!
ありがとうございました!!


>上でコメントされている大西様、
古いコメントなのでもうお気づきになられないかもしれませんが、

マクロの
'削除したくないスタイルがあるときは、ここに書いておく
この部分に使用中のスタイルを記述しておけば、それは削除されないんじゃないでしょうか?
Posted by cat-cat14 at 2014年01月14日 12:35
Excel2007のバグでしょうか…気づけば無数にスタイルが増えてしまっており、大変助かりました。
Posted by このえ at 2015年10月25日 09:19
ありがとうございます。

本当に助かります。

1つだけお願いです。

マクロを実行してから
「応答なし」になったまま
停止しました。この状態で
10〜15分かかりました。

ちゃんと動いていたわけですが、
全部で何個を削除しようとして、
いまは何個目まで進んでいるか、
を表示する機能が欲しいです。

待つべきか、強制終了すべきか、
迷いました。

誠に勝手な要望と思いますが、
申し訳ありません。
 
よろしくお願いいたします。


Posted by とっとと at 2017年07月10日 20:23
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/34905445

この記事へのトラックバック