- ベストアンサー
Excelファイルの書きかわり
- Excelファイルの閲覧時にファイルの末尾の一部が書き変わる現象が発生しています。この現象の原因と必然性について教えてください。
- ファイルの長さは変化せず、開くタイミングで一部が書き変わるという現象がExcel 2003 / WinXP、Excel 97 / Win2kの組み合わせで確認されています。Wordではこの現象は起きないので、原因を教えてください。
- Excelファイルを閲覧するだけで、ファイルの末尾から約400バイト程度の一部が書き変わる現象が起きることが報告されています。この現象はウイルス感染ではなく、問題はないようですが、なぜこのような現象が起きるのか教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
プログラムも作れない、かつ、BASIC言語も知らない私が心当たりがあることを下に記しましたが、参考になれば幸いです。 》 2.ファイルBをExcelで開くと、その瞬間、Bは変化します。 Excel の場合、エクスプローラ上の「ファイルB.xls」の[更新日時]が変化します。当該ファイルを閉じると[更新日時]は元に戻ります。 Word の場合、エクスプローラ上の「ファイルB.doc」の[更新日時]は変化なし。ただし、「~$ファイルB.doc」が作成されている。「ファイルB.doc」を閉じると「~$ファイルB.doc」は消失します。 》 3.ファイルBを閉じます。この時のさらなる変化はありませんが、 》 BはAと食い違ったままです。 エクスプローラ上で「ファイルA.xls」と「ファイルB.xls」のプロパティの[ファイル情報」を見てください。[作成日時]が異なっていませんか?「ファイルB.xls」の方は「1.基準のファイルAのコピーBを用意」した日時になっていませんか?つまり、この部分が「BはAと食い違ったまま」なのではないかと推察する次第です。しかし、開くたびに見るたびに書き変わるわけではないようです。 次に、「ファイルA.xls」あるいは「ファイルB.xls」を開いて[ファイル]→[プロパティ]→[ファイルの情報]を見てください。[更新日時]と[アクセス日]は開くたびに変わって表示されるようです。 以上、Excel 2002 & Word 2002/WinXP で確認した結果です。
その他の回答 (1)
「ファイルの末尾から400バイトくらいのところの数バイト」の意味が理解できません。どのようにして確認されましたか?
補足
返信ありがとうございます。 バックアップファイルが正常かチェックしていて、Excelファイル特有のこの現象に気づきました。 バイト単位で(バイナリとして)ファイルの比較できるようBASIC言語でプログラムを作りました。 1.基準のファイルAのコピーBを用意します。この時点では両者は一致しています。 2.ファイルBをExcelで開くと、その瞬間、Bは変化します。 3.ファイルBを閉じます。この時のさらなる変化はありませんが、BはAと食い違ったままです。 つまり開くたびに「見るだけで」末尾から400バイト付近の数バイトが書き変わって行きます。
お礼
なるほど、xlsファイルは開いただけでプロパティの更新日時が変化しますね。気が付きませんでした。閉じると元に戻るというところが盲点でした。有用情報ありがとうございました。 タイムスタンプはファイル内容では無く、ディレクトリに書かれた情報かなと思いますが、一方で、Wordなど他のアプリケーションとかけ離れた動きから、ファイル本体に手を出しても不思議無いように思えて来ます。何らかの理由で更新日時を一時的に変更せざるを得ないのでしょう。矛盾せぬよう内容の一部も・・・。因果関係は逆かもしれませんが。そして閉じる際、更新日時復帰は必要なれど、ファイル本体の内容変更の復帰までは必須で無いのかも。 なお、ファイルはコピーした段階で作成日時は異なりますが、内容は同一です。開くたびに内容が変化するのはxlsファイルをメモ帳で表示させてやっても確認できるようです。 最後の500文字くらいの範囲、読み取れる文字を並べると、次のようになっています。 Root Entry ・・・ タ F ・・・ Workbook ・・・ SummaryInformation ・・・ Document Summary Information 書き変わる領域は、タ F と Workbook に挟まれたと中央くらいの数文字です。ここが末尾から400バイトに相当します。 時間を割いていただきありがとうございました。