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に触れてからホームページ制作を独学で始める。
ベンチャー企業の営業、大手企業のSEを経て、独立。
ここ数年はWEB以外の仕事をしていたため、割と本気で勉強中。

コメントを残す

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