道具としてのExcel活用

壊れそうなExcelファイルの復元方法とは?
~ 古くからある移植方法 ~

「Excelファイルが壊れそう」な危機脱出方法

創業以来の「秘伝の味」ファイル。10年以上酷使したファイルは、崩壊予備軍。

我が社も創業以来20年以上経過し、さすがに創業以来使い続けているファイルはありませんが、売上の管理ファイルなどはすでに15年以上同じファイルをバージョンアップしながら使っています。

そんな長期間に渡って業務改善に「創意工夫」しながら活用しているファイルに限って、ある日突然「保存できません」などとメッセージを出して、壊れてしまう事があります。

そのために業務が止まってしまっては、「業務改善」目的からして本末転倒ですね。

 

なぜ、Excelファイルが壊れるか?

「よく使っているExcelファイルに限って壊れる」という経験をした方も多いとおもいますが、実は「よく使っているからこそ壊れる」のです。

どういう理屈かといえば・・・

  • 罫線やセルに着色をすると、内部的にその1つ1つに対して定義情報が蓄積される
  • 一度設定したものを消しても、定義情報そのものは消えない
  • 同じ箇所に何度も着色→脱色を繰り返すと、定義情報が増える場合がある
  • 100セルまとめて色を付ければ1回分の定義情報だが、1セルずつ付けると100回分になる
  •      :

こんな事情から、定義できる上限(明確な基準があるわけではありません)を超えると、別の領域を浸食して書き潰してしまい、その結果ファイルが壊れやすくなる様です。

「様です」と曖昧な表現になっているのは、旧形式ファイル(*.xls)時には定義情報の上限が65535回分だとされていたものが、新形式(*.xlsxなど、現状の形式)になってからどうなったか公式な案内がないためですが、同じように長期間使っていると同じように壊れているので、内部的な表現は同等と推定している次第です。

 

Excel危機脱出方法(その1):まずは別形式ファイルとして保存を試みる

保存できないと言われても、慌てることはありません。

一度キャンセルしてから、F12(ファンクションキーの12番)を押すか、名前を付けて保存から、保存形式を「*.xls」を選びます。

こうすれば、壊れたファイルでも、たいていは保存できます。

ただし、旧形式ファイルのため、行×列は今よりも狭くなっており、65535行×4096列を超える箇所に設定があると、削除されてしまいます。とはいえ、緊急事態時にそのような事はいっていられませんから、ひとまず保存してから、改めて新形式ファイルに変換し、不足部分をコピペなどで補うしかありません。

もっとも、「改めて新形式ファイルに変換」しようとすると、「壊れています」と言われることが多いので、その場合は保存が終わった範囲の行(列)を削除した上で、残りを別名で保存するのが良さそうです。

 

Excel危機脱出方法(その2):新しいファイルに引っ越しする

旧様式ファイルに保存したところで、Excelファイルが不安定な状態にあることに、代わりはありません。

冒頭で述べた通り、一度定義してしまった設定は、削除しても消えませんから、きれいに初期化しようと思ったら、新しい依り代としてのファイルに引っ越しをするしかありません。

その際、単純にコピペをすると、ゴミのような定義情報を全て引きずって持って行ってしまいます。

例えば、”スタイル”にむやみに様々な定義が増えているファイルを見たことがあるかと思いますが、これが膨大なゴミ情報を引きずった状態の一例です。

  • ※左が標準のスタイル設定、右がゴミスタイルが増えた状態です

壊れたExcelのスタイルとの比較

 

それでは、どのように移植すればよいでしょうか?

一番確実なのは、「形式を指定して貼付け」→「数式」をすることですが、範囲が広いと人的ミスにつながり兼ねませんし、面倒です。

 

Excel危機脱出方法(その3):一度SYLK形式ファイルに保存する

そんな時、SYLK(シルク)形式ファイルにすると、少なくともコピペをする必要はなくなります。

そんなファイル形式知らなかった、という方も多いと思いますが、実は表計算ソフト共通フォーマットとして、1980年代から存在する古い規格です。古いだけに、セルの着色や罫線情報などの再現には制約が生じますが、式を式のまま、文字は太字などの情報を残したまま、確実な保存ができます。

SYLK形式で保存前後の比較

このように、着色情報は「何か色が付いていた」程度にしか再現されませんが、他は概ね再現できています。当時のコンピュータは白黒が前提でしたから、当然かも知れません。

 

SYLK形式ファイルとは?

SYLK形式ファイルは、どんな表計算ソフト間でも互換がとれるような、共通の表現様式です。このため、特定のアプリケーションに依存した情報は表現できません。

原始的と言えば原始的ですが、なんとSYLKファイルはTEXT形式で表現されているので、メモ帳でも開くことができます。

もちろん、メモ帳で編集することが狙いではなく、文字情報が識別できれば互換性が維持できることを意味しています。

表計算ソフトに限らず、多くのデータベース計ソフトウェアでもサポートしているなど、意外と互換の範囲が広いのが特徴です。

一方、古い様式のため、Bookのように複数のシートをサポートしていません(Excelが複数シートをサポートしたのは、バージョン4からです)。

 

古いが故のメリットを活かす

古いことによるデメリットもありますが、スタイルなどの余計な情報を引っ張ってこないため、まっさらな(余計なゴミ情報のない)環境に引っ越すには、打って付けです。

壊れかけていたファイルをSYLK形式経由で新しい*.xlsx形式ファイルに引っ越しするだけで、ファイルサイズが数分の1になることは珍しくありません。その差分が、定義情報にあたります。

オブジェクト(四角形や図形など)は保存できないので、手で移植しなおすことになりますが、その際にゴミ情報を持ってこないよう、注意して下さい。バックアップを取りながら慎重に作業を進め、急に(不自然に)ファイルサイズが大きくなった時の直前の作業に、原因が含まれていることが多いようです。

もし、色々やってもうまくいかない時は、ファイルをお預かりして分析致しますので、お気軽にご相談下さい(可否判断までは無料です)。