2013-02-13

EXCEL でファイルの保存に異常に時間がかかるようになったり、VB Editor を開くとメモリが足りないと警告されるようになったらやってみること

ここしばらく(かなり長い間)日常的に使っている EXCEL のファイルでいろいろ困ったことがあったのだけれど、どうやら解決できたようなので、同じようなことで困っている人の参考になれば。

症状としては以下のようなもの(利用環境は Mac OS X 10.7 で Mac 版の Office 2011)。

  • いくつかのファイルでファイルを保存するのに数分〜十数分もかかる
  • 時にマクロ起動時にメモリ不足の警告が出たて実行できなかったり、
  • そもそも VB Editor が起動できないことがあったり、
  • さらにファイルを保存できなくなったりする
など非常に不安定な利用状況にもなっていた。

これらの症状が出るのは特定のいくつかのファイル(とその使いまわし)に限られていて、同じマシンの別アカウントや別のマシン上でも特に変わることなく、原因も不明で長い間困っていたのが、やっとのことで解決することができた。

その解決方法は、ワークシートの不要部分を削除するというもの。

EXCEL はワークシートに使えるセルの数が非常に多いのだけれど、実際には使う範囲しかデータを保持しないようになっている。それが、なにかのはずみで実際に使っている領域からはるか遠くの未使用のはずのセルが使用中として EXCEL に認識されてしまうというのが原因だったらしい。遠くのセルが使用中扱いになると、保存時の処理もそれだけ多くなり、メモリの利用状況や処理時間に影響が出ていたのだろう。

解決方法は実はけっこう簡単で、使っていない部分のセルを「削除」後保存しなおすというもの。

実際の例をあげると、A1:H11 までの領域しか使っていない(はずの)場合なら、まず、I のコラムヘッダをクリックして一列選択してそのまま Shift + Cmd +「→」で右の未使用(のはずの)領域を選択し、 delete キーで Hコラムよりも右側を削除。A11 より下の領域も同様に 12 行目のヘッダ(横にあってもヘッダ?)をクリックして一行選択して Shift + Cmd + 「↓」で未使用(のはずの)領域を選択し、delete で削除。これでいらない部分のセルは全て未使用となったはずなのでそのまま保存すればいい。

今回のトラブルの原因とは直接関係なかったようだけれど、ネットを検索してみると同じような症状でマクロが原因になっていることもあるらしい。その場合はマクロを VB エディターで別のファイルに書き出したあとで削除、ワークシートの保存、書き出したマクロの読み込み、そして保存、という手順で問題が解決することもあるとか。

No comments: