Hebikuzure's Tech Memo

2009年1月25日

Excel 2007 でネットワーク上の XLS 形式のブックを開いて別名で保存すると、元のブックの更新日時が変更される

Filed under: Microsoft Office — hebikuzure @ 1:30 PM

MSKB 948355
The modified date of the original .xls file is not reset to the original modified date and time when you save an .xls file with a different name in Excel 2007
http://support.microsoft.com/kb/948355/en-us


ファイルを開いて編集し、別名で保存する作業はよく行う事だが、この時最初に開いた元のファイルは何も変更していないのだから、タイム スタンプも変更されない事が期待される動作だろう。
ところが Excel 2007 でネットワーク共有上に保存されている Excel 97-2003 形式のブック (.xls ファイル) を開き、別名で保存すると元のファイルのタイム スタンプ (更新日時) がファイルを開いた時刻に更新されてしまう。ファイルの更新状況やバージョン、バックアップの必要性を更新日時で管理しているような場合、意図しない結果となる可能性があるので要注意だ。
この現象は Excel 2007 でネットワーク上の .xls ファイルを開いた場合にのみ発生し、Excel 2007 でもローカルのファイルを開いた場合や、.xslx ファイル (Excel 2007 形式) を開いた場合には発生しない。

元々 Excel 97-2003 形式のファイルを Excel で開くと、そのタイミングで開いたユーザーの名前をブックのヘッダー部分に書き込む処理をする。その時に一時的に更新日時も変更されるのだが、ファイルを保存せず閉じる場合には、開くときにキャッシュしておいた元々の更新日時を復元する処理が行われ、結果として更新日時は変更されない。
この動作については以下の技術情報で公開されている。

MSKB 826741
Excel changes Modified date and time when you open the workbook
http://support.microsoft.com/kb/826741/en-us

ところが Excel 2007 でネットワーク上の .xls ファイルを開く場合、この最後の更新日時の復元処理が行われず、更新日時が変更されたままになってしまうため、現象が発生する。

残念ながらこの動作を期待通りのものに変更する有効な回避策はない。そのためユーザー側が運用回避する必要がある。
回避策としては、以下のような方法が考えられる。

  • 元のファイルを先にコピーして新しいファイルを作り、それを編集する
  • Excel 2007 形式ファイルを使用する

コメントする »

まだコメントはありません。

RSS feed for comments on this post. TrackBack URI

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

WordPress.com で無料サイトやブログを作成.

%d人のブロガーが「いいね」をつけました。