◆◆MS-Excel2000スキルアップ講座/VBA編◆◆

ユーザー書式を一括で削除するには
ユーザーの書式に登録されているものを、まとめて削除する方法について説明しています。。
私の場合、 他のブックやAccess から取り込んだ場合、スタイルが増えるのに困っていました。増えるスタイルには必ず"_"がついていたので(例えば標準_SHEET1)、これだけを削除するようにしました。

ただし標準とついているものは、手動でも消すことが出来ないみたいで、以下のマクロでは、多くの場合無限ループに陥ります。この場合は格好悪いのですがBREAKで強制的に終わらせています。よく言えば運用で対処しているというのでしょうか?(^-^;) まぁ自分で使っているだけなので深く考えないようにしています。だから進歩がないんですけど・・。(:_;)

Sub Style_delete()
Dim tmp As Integer
Dim i As Integer
Dim buf As String
i = 1
'現在のブックに含まれているスタイルの数をtmpに代入
tmp = ActiveWorkbook.Styles.Count
'スタイルの数だけ繰り返し
Do Until i > tmp
'i番目のスタイルの名前を取得
buf = ActiveWorkbook.Styles(i).Name
'もしスタイル名に"_"が含まれていれば削除
If buf Like "*_*" Then
ActiveWorkbook.Styles(buf).Delete
i = i - 1
End If
'スタイルの個数を数え直す。
tmp = ActiveWorkbook.Styles.Count
i = i + 1
Loop
End Su