[XL2000]SaveAsメソッドで保存に失敗したときエラーメッセージが返されない

この記事は、以前は次の ID で公開されていました: JP269521
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
概要
この資料は、 Excel 2000 で VBA の SaveAs メソッドを実行してファイルを保存する場合、保存に失敗してもエラー メッセージが表示されない現象について説明しています。
現象
Excel 2000 で Microsoft Visual Basic Programming System Applications (以下 VBA) の SaveAs メソッドを実行してファイルを保存している間に、ほかのプログラムがファイルをロックすると、8 桁の 16 進数のファイル名 (例えば、B6E600000、E2C94000 など) を持つテンポラリ ファイルにデータが残されますが、元のファイルは更新されません。その際、保存に失敗したことを示すエラー メッセージは表示されず、ファイルを再び開いたときにデータが保存されていないことが判明します。

再現手順

  1. ネットワークで接続され、Excel 2000 のインストールされた 2 台のコンピュータ PC 1、PC 2 を用意します。
  2. PC 1 のルートドライブ (C ドライブ) にあるフォルダ名 Shared のフォルダを共有します。
  3. 共有フォルダ Shared 内に Excel ファイル Book1.xls を作成します。
  4. PC 1 上で Book1.xls を開き Sheet1 の A1:B65536 の各セルに「=INT(RAND()*10)」と入力します。
  5. Visual Basic Editor を起動し、Book1.xls に以下のマクロを挿入します。
         Sub SaveAsTest()         ActiveWorkbook.SaveAs FileName:="C:\Shared\Book1.xls"     End Sub
  6. [ファイル] メニューから [上書き保存] を選択して Book1.xls を保存します。
  7. Book1.xls の Sheet1 の C1:D65536 の各セルに「=INT(RAND()*10)」と入力してBook1.xls のデータに変更を加えます。
  8. PC 1 上で、Book1.xls を開いたまま、PC 2 上で Excel を起動します。
  9. PC 2 上で [スタート] メニューの [ファイル名を指定して実行] を選択し、次のように入力します。"\\PC1\Shared"
  10. PC 2 上で表示された共有フォルダ Shared 内に Book1.xls が存在しているのを確認します。
  11. PC 1 上の Book1.xls でマクロ SaveAsTest を実行すると "この場所に 'C:\Shared\Book1.xls' という名前のファイルが既にあります。置き換えますか?" というメッセージが表示されます。
  12. 手順 11. のメッセージで [はい] を選択し、VBA の SaveAs メソッドが実行されている間に、PC 2 上で共有フォルダ Shared 内の Book1.xls をダブルクリックして Book1.xls ファイルを開きます。
  13. PC 2 上の Excel に "Book1.xls はマクロを含んでいます。" という警告が表示されるので [マクロを有効にする] をクリックします。
  14. PC 2 上の Excel に "Book1.xls は編集のためロックされています。" というメッ セージが表示されるので、[通知] をクリックします。
  15. PC 1 上でマクロが実行中であることを確認し、しばらく待ちます。
  16. PC 2 上の Excel で "Book1.xls は編集できるようになりました。" というメッセージが表示されるので、[編集] をクリックします。
  17. PC 1、PC 2 上でそれぞれ [ファイル] メニューから [閉じる] を選択して Book1.xls を保存せずに閉じます。

結果

  • PC 1 上で共有フォルダ Shared を開くと、フォルダ内に 8 桁の 16 進数のファイル名を持つテンポラリ ファイルが作成されています。
  • Book1.xls を開くと、手順 7.で変更したデータが保存されていません。
  • 8 桁の 16 進数のファイル名を持つテンポラリ ファイルを開くと、手順 7 で変更した Book1.xls のデータが保存されています。

補足

手順 11. および 12. でマクロ SaveAsTest を使用せず、メニュー バーの [ファイル] から [名前をつけて保存] をクリックして Book1.xls を保存している間に、PC 2 から共有フォルダ Shared 内の Book1.xls を開こうとした場合、PC 1 上の Excel には以下のエラー メッセージが表示されます。
"変更を 'Book1.xls' に保存できませんでしたが、テンポラリ ドキュメント '(8 桁の 16 進数のファイル名を持つファイル)' に保存されました。既存のドキュメントを閉じて、テンポラリ ドキュメントを開き新しい名前を付けて保存してください。"
状況
この問題は、Microsoft Office 2000 Service Pack 2 (以下 Office 2000 SP-2) で修正しました。
回避策
この問題は Office 2000 SP-2 を適用することで解決できます。なお、このアップデートは、Office 2000 Service Release 1 (以下 Office 2000 SR-1) を対象とします。本修正プログラムをご利用になる前に、まず Office 2000 SR-1 を入手してください。Office 2000 SR-1 についての情報は以下のマイクロソフト Web サイトのページに記載されています。Office 2000 SP-2 はマイクロソフトの Web サイトからダウンロードできます。以下のページを表示し、記載内容にしたがって修正プログラムをダウンロードしてください。

補足

Office 2000 SP-2 を適用後、上記手順 11 および 12 でマクロ SaveAsTest を使用して Book1.xls を保存している間に、PC 2 から共有フォルダ Shared 内の Book1.xls を開こうとした場合、PC 2 上の Excel には以下のエラー メッセージが表示されます。
「'Book1.xls' にアクセスできません。ファイルは読取専用であるか、または読取専用の場所にアクセスしようとしています。または、サーバー上に保存されているドキュメントから応答がありません。」
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 269521 (最終更新日 2001-02-27) をもとに作成したものです。

プロパティ

文書番号:269521 - 最終更新日: 02/01/2014 21:21:13 - リビジョン: 3.3

Microsoft Excel 2000 Standard Edition

  • kbnosurvey kbarchive kbbug kbfix temporary テンポラリ error o2ksp2fix 一時 メッセージ xl9 ファイル 保存 message エラー 9.0 xl2000 saveas ドキュメント KB269521
フィードバック