【Excel】ファイルが重い!原因は「見えないゴミ」!?

これらの症状にお困りの方、もしかすると「見えないオブジェクト」が原因かもしれません。
- ファイルを開くのに数十秒かかる
- スクロールやシート切り替えがカクカクする
- 関数が多いわけでもないのに重い
見えないオブジェクトとは?
Excelが重くなる原因の一つに、目に見えないオブジェクトの蓄積があります。
シートの複製や他のブックからのコピー&ペーストを繰り返すと、知らず知らずのうちに透明な図形やコメント、テキストボックスなどの残骸がシート上に増えていきます。
表面上は何も見えないため気づきにくいのですが、こうした「見えないゴミ」が数百、場合によっては数千単位で存在していることもあります。
この大量のオブジェクトが、Excelの動作を重くする原因になっているのです。
原因の特定方法
私自身、Excelファイルが重くて困っていた際、以下の方法で原因を特定しました。
透明なオブジェクトが原因かどうかを確認したい場合の一例として参考にしてください。
必ずファイルをコピーして、バックアップをとってから行ってください。
対象のExcelファイルの拡張子を .xlsx から .zip に変更します。
「拡張子を変更すると、ファイルが使えなくなる可能性があります」という警告がでますが、「はい」をクリックします。
※拡張子が表示されていない場合は、表示タブ > 表示 > ファイル名拡張子にチェックをいれます。

拡張子を変更したファイルをダブルクリックして開きます。
中身がフォルダ構造として確認できる状態になります。
xl フォルダの中にある worksheets フォルダを開きます。
私が確認していたExcelでは50KB程度しかなく、シート自体が重さの原因ではないことが確認できました。

xl フォルダの中にある drawingsフォルダを開きます。
このExcelではオブジェクトを使っていないのですが、大量に存在していることが確認できました。
表面上は見えないオブジェクトですが、ここに膨大なデータが溜まっていることが、ファイルの動作を重くしている可能性が高いと判断しました。

対処方法
手動で削除する方法
Excelを開き、F5キー > オブジェクト を選択します。
これでシート上のすべてのオブジェクトが選択されます。
選択されたオブジェクトをDeleteキーで削除します。
マクロを使用する方法
以下のVBAコードを使うと、すべてのシートからグラフ以外のオブジェクトを一括で削除できます。
まとめ
Excelの動作が重いと感じたとき、まずは「見えないオブジェクト」が原因でないか確認してみてください。
今回ご紹介した方法で確認・削除することで、Excelがサクサク動くようになることがあります。
上記の方法で改善しない場合は、他の原因を探る必要があります。

