ある日、お客さんに「使っているエクセルのシートコピーが異様に重たいんだけど…」と相談を受けた。
実際に見せてもらうと、マクロも何も使っていないただのシートなのに、シートコピーが異様に重い。
その時の調査から解決の一部始終。
調査
客先で使用されていたのはExcel 2010だったので、OOXMLファイルから確認してみることに。
OOXMLは、Office 2007から採用されたファイルフォーマットで、「.docx」とか「.xlsx」とか、なんか最後に「x」がつくファイル形式。
ファイル内部の調査なら、こっちで見たら一瞬かなーと思って確認してみる。
OOXMLの確認方法
一通り、OOXMLファイルを確認してみると、1つ、やたらでかいサイズのファイルを発見。
今回見つけたのは、「xl/drawings」フォルダの下にある「drawingX.xml」(Xはシートインデックス)というファイル。
このファイルは図形オブジェクトの定義ファイル。
なので、不可視のオブジェクトが大量にいるんだろーなーと判明。
対処
今回は、図形オブジェクトが意図せず大量に作られていたのが原因だったので、図形オブジェクトを削除したらオッケー。
図形オブジェクトの一括削除
以下の手順で図形オブジェクトは一括削除できる。
まとめ
処理の重さの原因はいろいろ考えられるけど、OOXMLファイル見たら大体のことは分かる。
こちらのページ、大変参考になり助かりました。ありがとうございます。
全く身に覚えのないオブジェクトですが、数年前のファイルから徐々に重くなっていたようです。
こうなってしまう原因が判ればなおいいのですが、本当に助かりました。
>村松道孝 様
コメント有難うございます!
付近に透明オブジェクトがある状態で、気付かずにセルのコピー&ペーストをして、知らない間に増えていく、というのはあるみたいです。
ケースバイケースですが、もし起こった場合は、本記事のように消すしかないですね(^^;