とっちゃん@nyanco! です。
今回はエクセルのファイルが肥大化し激重になって「応答なし」が連発してストレスMAXになってしまったけど解決したよというお話です。
何するにも数秒から数分固まって超イライラでしたにゃ〜
エクセルファイルが重すぎて動かない
先日、定例で作成しているエクセルの報告書データをいつものように編集しようとすると、あらゆる動きが激重で明らかにおかしくなってました。
- セルのコピーが遅い
- 文字入力が遅い
- シートのコピーが超遅い
- シートの切り替えも遅い
- 保存するのも遅い
- 印刷画面もなかなか出ない
- そもそもファイルを開くのも超遅い
「パソコンがちょっとお疲れなのか?」と思い、エクセル再起動とパソコン再起動を試すも変わらず。
共有ネットワーク上にあるファイルだったので「ネットワークの調子が悪いのか?」と思いローカルにファイルをコピーして試すも変わらず。
そもそもネットワーク上の他のファイルは普通なので、どうもこのファイル自体に何か問題が起きてるようですにゃ〜
ファイルサイズが異常に大きくなっていた
エクスプローラーで該当のファイルを確認してみると驚くべきことが…!

にゃんと!
ファイルサイズが10,375KB(約10MB)と異常に大きくなってますにゃ〜
計算式も関数も不使用・画像1枚すらも配置してないシンプルなテキストだけのエクセルファイルで、10MBなんていうサイズは明らかに何か異常なことが起こってますね…!
また、よくよく見ると毎月作成しているこのファイル、段々とファイルサイズが大きくなってました。

なんだかホラーですにゃ〜
エクセルファイルを調べてみると…
時間がかかるのは覚悟の上、肥大化したエクセルファイルの中身をじっくり調べてみることに。
エクセルファイル肥大化の原因は主に、
- 画像ファイル貼り付け過ぎ
- 複雑な計算式・関数を使い過ぎ
- オブジェクト(ラインやテキストボックスなど)を配置し過ぎ
あたりとなりますが、1・2番目に関しては該当のエクセルファイルの中では一切使ってないはずなので一旦おいといて、3番目の「オブジェクト」について調査してみることにしました。
不要な「オブジェクト」はないか検索
不要な「オブジェクト」は遥か彼方の画面外にポツンと存在していることもあり、自力で探すのは非効率の極みということでエクセルの検索機能を使います。
エクセルは「テキスト」だけでなく「オブジェクト」なども検索対象にできますにゃ〜
▼「ホーム」タブメニューの右の方にある「検索と選択」→「条件を選択してジャンプ(S)…」をクリックします。

▼「選択オプション」ウィンドウが開くので「オブジェクト」を選択し「OK」をクリックします。

すると…謎のオブジェクトを発見!!!

こ・こいつは一体何者ですかにゃ〜??
犯人はテキストなしの大量の「テキストボックス」
▼触ってみると、謎オブジェクトの正体は任意の場所に文字を配置できる「テキストボックス」でした。

この「テキストボックス」、文字が何も入ってない状態だと完全に無色透明で全く存在に気付かないんですね…
普通は「挿入」タブから「テキストボックス」を選択して描画しないと配置されないので勝手に存在すること自体有り得ないんですが…
「検索と選択」→「オブジェクトの選択と表示(P)…」から確認できるオブジェクト一覧を確認すると、なんと1,000個以上のテキストボックスが存在していることが判明!!
とても1,000個以上あるように見えないですが、同じ場所にいくつも重なってしまってるようですにゃ〜
1,000個以上のオブジェクト…そりゃファイルサイズ肥大化しますよね…
オブジェクトを選択した状態で Delete キーで「テキストオブジェクト」をまとめて削除しエクセルを保存後、ファイルサイズを確認すると…

「10,375 KB」からたったの「54 KB」になりました!!
なんと約200分の1に!!
動作もサクサク動くようになりましたにゃ〜
「オブジェクト」が大量に増えた原因を考察
とりあえずエクセルファイルは正常なファイルサイズになり、快適に作業できるようになりましたが、今後のためにこうなってしまった原因を自分なりに考察。
「テキストオブジェクト」が挿入された原因
そもそも、なぜ何もテキストが入ってない無駄な「テキストオブジェクト」が挿入されていたのか?
同じファイルを複数人で触ることがあるので、関係者に確認してみましたが筆者も含め誰も挿入した覚えはないとのこと。
操作ミスもちょっと考えにくいですにゃ〜
結局、十何年も使い回しているファイルなので、もう退職された方がフォーマット作成の試行錯誤中に残した残骸というぐらいの結論しか出ず。
なぜ1,000個以上も存在していたのか
もう一つ、なぜ1,000以上のテキストボックスが存在していたのか?について。
こちらは色々検証した結果…
セルや行・列をコピーした際、その範囲に「オブジェクト」が存在していると一緒にコピーされる仕様が原因のようでした。
▼下記のように行をまとめて選択してコピー&ペーストすると…

▼選択範囲に含まれていた「テキストボックス」も一緒に複製されました!

例として分かりやすくするため「テキストボックス」と文字を入れてますが、実際にはテキストはなく無色透明だったため複製されたことに気付きません。
しかも上記のような行を複製する作業は日常的に行うため、知らない内に「テキストボックス」がコピーされ続け、1,000個になってしまっていた…ということで間違いなさそうです。
おわりに
日々触っているエクセルが「なんか動きが重いな〜」と感じたら、知らない内に見えないデータが積み上げられている可能性があるかも?
そんな時は、「検索と選択」→「オブジェクトの選択と表示(P)…」からオブジェクト一覧を確認してみると原因が分かるかも知れません。
この「オブジェクトの選択と表示」は検索せずとも存在するあらゆるオブジェクトの一覧がパッと見れるので覚えておくと便利ですにゃ〜
本記事がどなたかの参考になれば幸いです。
今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧
コメント