EXCELファイルを壊しちゃった!

業務において、EXCELほど素晴らしいアプリケーションはないと思うが、汎用性が高すぎるのが玉に瑕だったりする。汎用性が高すぎると、なんでもそれでやっちゃう人というのが現れるのだ。WORDでやるべき作業をEXCELでやる人とか、VISIOでやるべき作業をEXCELでやる人とか。
EXCELは本来の目的である表計算ソフトとして用いる場合にはまったくもって従順なソフトだ。しかし、他のソフトでやるべき作業をEXCELで行うと牙をむくときがある。その最たる例がオブジェクトの使い過ぎによるEXCELファイルの破損だ。
EXCELはおそらく、表計算ソフトとしてのテストは非常に高いレベルで行われている。まず、問題が起こることはない。しかし、画像を貼り付けまくった文書を作成するとか、グラフを数百貼り付けてある文書とか、ActiveXコントロールを使いまくった文書は稀に壊れることがある。壊れるというのは「書き込めたファイルなのに読み込めない」ということで、要は「EXCELが仕様に基づいて保存したにもかかわらず、そのファイルを開く際に仕様を再現できずファイルが開けなくなってしまう」といった現象だ。
ではこのような状況に陥った場合、どうすればいいのだろうか。
ダメモトでトライしてみるのであれば、LibreOfficeのcalcで開いてみるという方法がある。基本的に「保存ができているファイル」が「保存した状態を再現できないため開けない」という場合、「保存した状態を再現できる可能性がある他のソフトウェア」を使うという手がある。違うバージョンを試してみるとか、同じような仕様を持ったソフトによって開いてみるといった方法だ。
過去2回ほど、EXCELで開けなくなったファイルをOpenOffice*1で開きなおすことによって、データが救えたケースがある。そのうちの一回は「明日のイベントで使用するデータが入った、唯一無二のファイル」だった。
データとしては正しいが、プログラムで読めないファイルが発生した場合、互換性のある他のプログラムで読むという考え方は結構重要で、たとえばSQLServerのバックアップファイルが原因不明なエラーで復元できなくなった時に、新しいバージョンのSQLServerで復元したら復元できたことが経験上ある。覚えておくといいかもしれない。

*1:LibreOfficeの前身