上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

1つのエクセルブックを長く使っていると、名前(メニューバーの「挿入」>「名前」の名前)とスタイル(メニューバーの「書式」>「スタイル」のスタイル)がいつの間にか大量に増えていることがあります。

一見しても増えていることはわかりません。また、意図して使っているのであれば問題ありません。

が、特に意識していなければ、いつの間にか以下のような悪影響を及ぼしている可能性があります。
  • テキストファイルのみのエクセルファイルにもかかわらず妙にサイズが大きい。
  • パソコン自体の動きは快適なのに、特定のエクセルファイルの編集に妙に時間がかかる(重い)。
  • 名前が他のフォルダのエクセルファイルに紐付けされてしまっている。

特に、「名前が他のフォルダのエクセルファイルに紐付けされてしまっている」と、そのフォルダ名に特定のプロジェクト名や、顧客名が使われていた場合、そのエクセルファイルを使いまわせば、「あ、こんなプロジェクトが進行してるのか」「この企業とも付き合いあるんだな」などという情報が漏れてしまう可能性があります。

さらに厄介なのが、こういう状態になったブックのシートを新しいブックに移動すると、そのブックにも大量の名前とスタイルがコピーされてしまう点
まさに負の連鎖。


ということで、不要な「名前」や「書式」を削除しようと試みることはあるかと思いますが、残念ながらエクセル2003の時点では一括削除するボタンは無く、全選択して削除もできません。
つまり、1つ1つ消していかなければならないということで、非常に手間がかかります。また、一部の書式においては、何故か削除できない場合もあります。

そこで、マクロを使って一括削除すると楽チンです。

以下が一括削除するマクロです。

実行方法としては、シート名タブ(Sheet1など)を右クリックし、「コードの表示」を選択、出てきた画面に以下のいずれかのマクロを貼り付けて、実行する(「│>」ボタンをクリックする)だけです。
実行完了したら、貼り付けたマクロは消してしまってかまいません。

■スタイルの一括削除マクロ

Sub delstyle()
Dim s
On Error Resume Next
For Each s In ActiveWorkbook.Styles
If Not s.BuiltIn Then
s.Delete
End If
Next
End Sub


■名前の一括削除マクロ

Sub delname()
Dim s
On Error Resume Next
For Each s In ActiveWorkbook.Names
If Not s.BuiltIn Then
s.Delete
End If
Next
End Sub



【2013年6月14日 追記】

新しいバージョンのエクセルでスタイルなどをサクッと消してくれるツールがありました。
インストールが必要ですが、確実に消したいのであればこちらがオススメ。
Excel File Cleaner(http://excelfilecleaner.codeplex.com/)



【2013年6月26日 追記】

マイクロソフト公式(Excel で最後のセルをリセットする方法:KB244435)で、余分な書式を削除して最後のセルをリセットする Excel アドインのサンプルが紹介されています。
ファイル サイズが必要以上に大きくなったり、余分なページが印刷されたり、"メモリ不足" を表すエラー メッセージが表示されたりする」ことの解決に役立つ場合があるらしいですので、お困りの方は試す価値があると思います(特にメモリ不足エラー)。

ダウンロードはこちら(http://xsformatcleaner.codeplex.com/)

エクセル2003以前、2007、2010、および 2013に対応しているようです。


以下、ダウンロード後の手順を上記公式サイトから引用します。

  1. Excel を起動し、実行している Excel のバージョンに応じて、次の手順を実行します。
    Microsoft Office Excel 2007、2010、および 2013
    1. Microsoft Office ボタンをクリックし、[Excel のオプション] をクリックします。
    2. [アドイン] をクリックし、[管理] ボックスの一覧の [Excel アドイン] をクリックして [設定] をクリックします。
    3. ファイルを Library フォルダーに保存しなかった場合は、[参照] をクリックし、[参照] ウィンドウでファイルを見つけてクリックします。
    4. [Excess Format Cleaner 1.1] チェック ボックスをオンにし、[OK] をクリックします。
    Microsoft Office Excel 2003 およびそれ以前のバージョンの Excel
    1. [ツール] メニューの [アドイン] をクリックします。
    2. ファイルを Library フォルダーに保存しなかった場合は、[参照] をクリックし、[参照] ウィンドウでファイルを見つけてクリックします。
    3. [Excess Format Cleaner 1.1] チェック ボックスをオンにし、[OK] をクリックします。
  2. Excel 2007 では、[アドイン] タブをクリックし、[メニュー コマンド] の [Clear Excess Formats in XSFormatCleaner.xla] をクリックします。
    Excel 2003 およびそれ以前のバージョンの Excel では、クリーンアップするブックを開き、[ファイル] メニューの [Clear Excess Formatting in workbook] をクリックします。マクロによって、ファイル内のすべてのワークシートから余分な書式が消去されます。
    マクロが完了すると、変更を確定するにはブックを保存する必要があるというメッセージが表示されます。
  3. ファイルを保存して閉じ、もう一度開きます。

Related Posts

Thoughts on スポンサーサイトエクセルで「名前」と書式の「スタイル」を一括削除する方法

says... 助かりました。

Date:2010/07/02 10:11

Excel 2007 で使用。

先方から渡されたファイルがやたら重くて調べたら、
外部参照エラーの山。

それを修正するのに、物凄く役に立ちました。
ありがとうございます。

因みにそのファイル、顧客情報とか件名が大量に入っていて、確かに情報ダダ漏れ状態でした。

自分も気を付けないとなぁと思いました。

良い情報をありがとうございました。

says... お役に立てて

Date:2010/07/17 02:00

お役に立てて何よりです。
2007でも動いた、ということのお知らせもありがとうございました。

says...

Date:2010/09/16 00:37

動く?

ttp://oshiete.goo.ne.jp/qa/6183778.html

styleにはちゃんとBuiltInプロパティがある
ttp://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.style_members.aspx

says... 2003で試したのですが...

Date:2010/10/05 15:12

2003で試したのですが 名前は一部しか消えませんでした。

says... 名前削除悩んでました

Date:2011/03/07 16:13

ありがとうございました
かなり楽にいけました

says... 使用していない名前だけ削除

Date:2012/02/06 09:46

皆さん同じような問題を抱えているんですね!
で、一歩進んで
・使用していない名前だけ
消したいのですが・・・

散々探していますがヒットしません。
宜しく!

says...

Date:2012/02/06 11:12

表現が間違っていました。

社外とやり取りする際に、先方のフォルダにあるEXCELファイルのセルを参照しているのです。
で、その「名前」を使用していれば#REF!とエラーが返ってくるので、それをdeleteする対応は見つかるのですが、名前設定だけで使用していないとどうにもなりません

設定されている名前を利用したセルのある「新シート」を作ってエラーを発生させればよいかと考えたのですが、もっとエレガントな解決方法があればご紹介ください。

says...

Date:2012/06/27 12:44

メニューバーの「編集」-「リンクの設定」を選択し、表示されたダイアログで該当のファイル名を選択して、「リンクの解除」ボタンを押すと解決しますよ。

says...

Date:2013/06/27 12:34

すごく助かりました。
ありがとうございます。

Leave a Reply

* less than 16 characters
* less than 24 characters
* less than 16 characters
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。