Excelでシートのコピーが重たい

ある日、お客さんに「使っているエクセルのシートコピーが異様に重たいんだけど…」と相談を受けた。

実際に見せてもらうと、マクロも何も使っていないただのシートなのに、シートコピーが異様に重い。

その時の調査から解決の一部始終。

調査

客先で使用されていたのはExcel 2010だったので、OOXMLファイルから確認してみることに。

OOXMLは、Office 2007から採用されたファイルフォーマットで、「.docx」とか「.xlsx」とか、なんか最後に「x」がつくファイル形式。

ファイル内部の調査なら、こっちで見たら一瞬かなーと思って確認してみる。

OOXMLの確認方法

  1. まず、該当ファイルの拡張子を「zip」に変更する。
    ooxmlの確認方法01

  2. リネームして作成したzipファイルを解凍する。
    ooxmlの確認方法02

  3. 解凍したフォルダの中に、ファイルを構成するOOXMLファイルがあるので確認する。
    ooxmlの確認方法03

一通り、OOXMLファイルを確認してみると、1つ、やたらでかいサイズのファイルを発見。

ooxmlファイルの中でやたらでかいファイルを発見

今回見つけたのは、「xl/drawings」フォルダの下にある「drawingX.xml」(Xはシートインデックス)というファイル。

このファイルは図形オブジェクトの定義ファイル。
なので、不可視のオブジェクトが大量にいるんだろーなーと判明。

対処

今回は、図形オブジェクトが意図せず大量に作られていたのが原因だったので、図形オブジェクトを削除したらオッケー。

図形オブジェクトの一括削除

以下の手順で図形オブジェクトは一括削除できる。

  1. ホーム」タブの右端、「検索と選択」」から「条件を選択してジャンプ」をクリック。
    【EXCEL】図形オブジェクトの一括削除01

  2. 「選択オプション」画面で「オブジェクト」を選択して「OK」。
    【EXCEL】図形オブジェクトの一括削除02

  3. こんな感じでオブジェクトが一括選択される。あとはDeleteキー押して削除するだけ。
    【EXCEL】図形オブジェクトの一括削除03

まとめ

処理の重さの原因はいろいろ考えられるけど、OOXMLファイル見たら大体のことは分かる。

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のPG・SEを経て、独立。 現在はとある企業のCTOと、変な名前の会社の社長をしてる。

「Excelでシートのコピーが重たい」への2件のフィードバック

  1. こちらのページ、大変参考になり助かりました。ありがとうございます。
    全く身に覚えのないオブジェクトですが、数年前のファイルから徐々に重くなっていたようです。
    こうなってしまう原因が判ればなおいいのですが、本当に助かりました。

    1. >村松道孝 様
      コメント有難うございます!
      付近に透明オブジェクトがある状態で、気付かずにセルのコピー&ペーストをして、知らない間に増えていく、というのはあるみたいです。
      ケースバイケースですが、もし起こった場合は、本記事のように消すしかないですね(^^;

Output48 へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください