一般的な Word のクラッシュ後の対応についてはこちら。
PC: Wordがクラッシュした時のテキスト救出
2014年12月21日
先日卒論提出日にUSBメモリが壊れた学生さんをお助けした話。幸い提出後のトラブル。保存したはずのファイルが消えた。とりあえずUSBのイメージファイルをHDDに保存。DDforWindows。これでいつでも書き戻し可。Recuvaでファイル検索。残念ながらファイルは上書き済。
Recuvaの一覧には2048年など未来のファイルが含まれており確かにヤバげ。時間とファイルサイズからそれらしいものを虱潰しに落とすと、一つがそれっぽい。Wordで修復できないのでdocxをzip解凍。document.xmlをExcelで開き本文救出。
\r\n\r\nを@@@@とかに置き換え改行を取り出し\r\nを削除。のち@@@@を\r\nに置換し本文改行を復元。調査や対応で2時間ほど。原稿締め切りの日に。なんとかなりました。問題のノートが遅いわUACガチガチだわボロボロで苦労しました。書式やレイアウトは消えたけど、なんとか
Wordのファイル、昨今は割りと安定していますが、
稀に壊れることがあります。
Word2003など 拡張子 「.doc」 の間は泣き寝入りでした。
しかし、2007以降の 「.docx」 は、救出できる可能性があります。
「.docx」 の x は XML の X。
「.doc」 はバイナリフォーマットで、やすやすと他のアプリケーションで
読み書きすることはできませんでした。
しかし 「.docx」 は XMLに準拠しており、
「.docx」 は XMLファイルの塊をZIP圧縮したものとなっています。
「.docx」 のファイルが開けない場合に、
ファイルをZIP解凍することができれば、
Word の本文を含むXMLファイルを、拾い出すことができます。
以下、救出の際の手続きを。
幾度か、これで救出したことがあります。
(1)「.docx」 のZIP解凍
開けない 「.docx」 ファイルをZIP解凍します。
まず、拡張子が見えるか、確認して下さい。
見えない方は、以下のように設定を。
フォルダを開いた状態でAltキーを押し、
[ツール]⇒[フォルダオブション]⇒[表示]タブと進み、
「登録されている拡張子は表示しない」のチェックを外して下さい。
開けないWordファイルの拡張子が見えるようになったら、
次は、拡張子を変えます。
「.docx」 を 「.zip」 に変更して下さい。
変更したら、普通のZIPファイルのように、解凍して下さい。
ダブルクリックで開くのでもOKです。
Wordのフォルダの中に、「document.xml」 があります。
コレです。コレの中に、本文があります。
ダブルクリックでブラウザが開き、XMLが表示されます。
確かに、Word に書き込んだ本文が見えてます。
(2)Excelでのテキスト救出
本文のXMLは取り出せましたが、タグが邪魔です。
ExcelでXMLテーブルとして開きます。
一度、上記の「document.xml」をどこかに保存して下さい。
コピペで結構です。
どこかに保存しないと、Excel で開けません。
次に、開いたExcel にドラッグドロップで落とします。
ポトリと。
小さなウィンドウが出てきます。
「XMLテーブルとして開く」 をチェック、OKを押して下さい。
スキーマがどーのこーの出ますが、とりあえずOKです。
出ました!本文があります!
この例では、[ 列F ] にありますね。
ただ、なんだか文が、ブチブチ切れています。
(3)改行の復元
上記の本文の列を、Wordに貼り付けます。
Excel からコピーして、Word の
[形式を選択して貼り付け] から [テキスト] で貼り付けて下さい。
改行が壊れています。
何らかのルールで文が分割されて、
通常の改行は、改行2つに置き換わっています。
しかし、一括置換で簡単に元に戻せます。
置換ウィンドウを開き、「ワイルドカードを使用する」 にチェック。
検索する文字列に 「([!^13])^13」 と入れて、
置換後の文字列に 「\1」 と入れましょう。
バックスラッシュ(\)は、¥記号の半角と同じです。
あとは 「全て置換」 を押しましょう。
はい、できました!
書式は消えてしまいましたが、
本文を無事救出することができました。
以上です。
2007以降は、長いものに巻かれて
.docx で 保存したほうが、良さそうです。
なお .doc が、複雑なバイナリフォーマットであった
理由については、こちら。
VBA を設計した Joel さんが詳しく書いてます。