web-dev-qa-db-ja.com

2GBの一時ファイルを生成した後、Microsoft Excelが「Document not saved」エラーを返す

概要

  1. Excelブックを保存すると、実行が非常に遅くなることがあります。
  2. 巨大な一時ファイルが作成されます。
  3. 「保存されていないドキュメント」エラーが表示されます。
  4. 現在のExcelセッションでは、何をしてもファイルを保存できません。
  5. 最後の正常な保存以降、すべての作業が失われました。

これは、この問題を見た人からの情報要求であり、回避策、回復戦略、および予防策についての提案を募集しています。

細部

Excelで[保存]をクリックしたときに、Excelブックファイルが保存されているフォルダーを見たことがありますか。

保存プロセス中に、Excelは、任意の8文字の名前を持ち、「。xls」または「.tmp」拡張子のない一時ファイルを作成します。この一時ファイルへの書き込み操作が完了するとすぐに、元のファイルは削除され、この一時ファイルの名前は元のファイル名に変更されます。

時々このプロセスはうまくいかない。具体的には、Excelアプリケーションウィンドウはユーザー入力への応答を停止しますが、画面は再描画され、「[ファイル名]を保存しています」という進行状況バーがアプリケーションウィンドウに表示されます。

一時ファイルが大きくなり、大きくなり...そして大きくなります。

2 GBの直後、またはディスク領域が不足すると、一時ファイルが削除され、Excelは「ドキュメントが保存されていません」エラーを返します。運が良ければ10〜15分、そうでなければ数時間かかります。変更を加えたファイルの以前のコピー(または自動保存フォルダーに何か)がない場合は、完全に不運です。最後に成功した保存以降の作業はすべて失われます。

機能しません。もう一度保存するとプロセスが繰り返されます。「名前を付けて保存」を別のファイル形式(例:Webページ)に保存すると、しばらくするとプロセスが繰り返されます。

この問題は4つの異なる会社で見られました。それらの1つ(ニューヨーク、ロンドン、チューリッヒ、シンガポールの大規模な金融機関)は、非常に大きく複雑なスプレッドシートを大量のVBAで使用しており、ほとんどのExcel開発者が問題を認識しています。

マイクロソフトはそれについて何も言うことはありません。 「ドキュメントは保存されていません」に関するMicrosoftのKB記事 をよく読んでいると、レドモンドの誰かが問題の各部分を確認したが、確認するKB記事にそれらの部分をまとめることはできません。この特定の問題。

ここに私が知っているすべてがあります:

  1. 私はネットワークドライブでしか見たことがありません。
  2. ファイル内のVBAコードに取り組み、「コンパイル」を押した後で初めて、これを確認しました。
  3. 私はほとんど大きなファイル(50 MB以上)でそれを見ましたが、今日は780 kBのファイルで見ました。
  4. 現在のExcelセッションからファイルを保存できません。
  5. 個々のVBAモジュールをエクスポートできます。
  6. ネットワーク管理者は、トラフィックとサーバースペースに非常に悩まされています。

私が知らないことがいくつかあります:

  1. Excel 2007または2010では問題が発生していませんが、これらの新しいバージョンのOfficeを使用していないため、この問題が発生しないと結論付けています。
  2. 1997年以降の他のすべてのバージョンのExcelは使用できます。
  3. サービスパック、修正プログラム、またはサードパーティのウイルス対策ソフトウェアとの相関関係は知りません。

ご質問

  1. この問題の原因は何ですか?
  2. このエラーから回復できますか?
  3. それを防ぐために何ができますか?
5
Nigel Heffernan

私の場合、Excelが一時ファイルを保存しているかどうかわかりません。それ以外の場合、私の経験は質問に記載されているポイント1、2、3、4、5に対応しています。 Office 11.0(2003)を使用しています。

明確にするために、2番目のポイント1から5および最初のポイント。怒っている管理者はいません(まだ!)。

回避策の1つは、ファイルを読み取り専用に変更することです。保存するように求められたら、別のファイル名で保存し、後で古いファイルを上書きする必要があります(新しいファイルをもう一度読み取り専用にします)。これにより、すべてのモジュールをエクスポートする必要がなくなります。

面倒ですが、各モジュールをエクスポートして再インポートするよりは少ないと思います。

かなり複雑なソフトウェアを十分に長く使用すると、最終的には修正されていない非常に不十分な(またはまったくない)文書化されたバグが見つかるだろうと私は考え始めています。

4
mkingston

これは、この非常にイライラする問題に対する私の回避策です。すべてのデータを失わないようにする唯一の方法は、開いている間にワークブックからすべての情報をコピーして、新しいワークブックに貼り付けることです。これをcanで保存します。

おそらく新しいドキュメントを作成すると、Excelは新しい一時ファイルとパスを起動できます。

興味深いことに、私が説明したように、他のファイルの新しいワークブックを開始した後、開いていて同じ「ドキュメントが保存されていません」というメッセージが表示され、保存して閉じた別のワークブックがあるようです。ただし、これについて100%確信することはできません。次回、この迷惑な問題が発生したときにもう一度試します。

ネットワークドライブでさまざまな一時ファイルを表示できますが、それらにアクセスできませんでした。人生は短すぎる。

2
Ivan

作業内容は失われない可能性があるため、慌ててファイルを閉じないでください。ここにあなたが試すことができるものがあります:私は(時々)新しいまたは既存のワークシートに保存されなかったファイルからワークシートをコピーすることができました。そのファイルは、私の作品のコピーと共に保存できます。もちろん、Excelが完全にクラッシュすると、ファイルはコピーで修復されました。元のファイルは非常に古いバージョンに戻りましたが、私の作業は失われませんでした。幸運を。

1
D.X.M.

私はこれと同じエラーに遭遇し、新しいワークブックへのコピー/貼り付けは本当に私にとってオプションではありませんでしたb/c非常に詳細な/カスタマイズされたピボットテーブルがありました。 Microsoftのサポート記事のアドバイスに従って、ローカルドライブ(使用していたネットワークドライブではなく)に保存しようとしましたが、それでも解決しませんでした。

以前に保存していた通常のExcelワークブックファイルの種類(.xlsx)ではなく、マクロ有効ワークブック(.xlsm)として保存しただけです。うまくいきました。注:最初に古いExcelワークブックファイルタイプ(.xls)として保存しようとしましたが、xlsxバージョンに新しく追加されたピボットテーブル機能との互換性/忠実度エラーが発生したため、そのルートに注意してください。

その後、戻って、ドキュメントを通常の(.xlsx)ファイルタイプとして保存することができました。

お役に立てば幸いです。

1
Jeff

マイクロソフトはこのKB記事を2005年に公開しましたが、最近検索エンジンに表示されるようになりました: Excel 2000でファイルを保存しようとするとエラーメッセージが表示される場合があります この記事では、NetworkResiliencyレジストリ設定の使用について説明します。他の誰かがこれを試したかどうか知りたいです。

同じ情報が2007年にKB291204で公開されました: Excelでネットワーク接続が失われた後にファイルを保存すると、エラーメッセージが表示されます

0
Nigel Heffernan

私はこの問題を何度も経験しました。先に述べたように、ネットワークの保存との関連でのみ見られました。これが起こったとき、私は私のハードドライブに関して保存を行い、それは機能します。その後、安全のためにシャットダウンして再起動し、すべてのバックグラウンドをクリーンアップしますRAM乱雑になり、保存ファイルを開いて再保存するか、ネットワークドライブに移動するだけです。

0
Joe Grove

同じ問題がありましたが、Excelではファイルを別の形式で保存することも、重要な(つまり、最後に保存してから変更された)データを別のブックにコピーすることもできませんでした。 100%確かではありませんが、印象があります。これは、データがすべてのフォーマットを含む別のソースからExcelファイルに以前にコピーされたときに発生します。それで、あらゆる種類の境界線や塗りつぶしをワークシートなどから削除し、ファイルを保存することができました。すべての作業を失う前に、試してみる価値があります。

0
Alina

私の場合、「ドキュメントが保存されていません」の問題は、マクロ(VBA)を含むスプレッドシートを数秒前に同じことを行った後、ネットワークドライブに保存しようとしたのが早すぎるために発生しました( Windows 8.1でExcel 2000を使用して初めて[保存]をクリックしたため、もう一度クリックしました)。 Windowsは、Excelを閉じて、Excelが保存した8文字(拡張子なし)の一時ファイルを開くように提案しましたが、大量の作業が失われるのではないかと恐れていたので、そのアドバイスは無視しました。 Excelはまず一時ファイルに保存し、次にそれを正しい元のファイル名に名前変更しますが、そのプロセスは、もう一度(ネットワークドライブに)[保存]をクリックするのが速すぎたために破損しました。結果は一時ファイルでしたが、元のファイルはエクスプローラーから完全に消えてしまいました!怖い。エクスプローラーで一時ファイルを削除し、Microsoftの提案に従って、まだ開いているファイルをローカルドライブに保存しようとしましたが、うまくいきませんでした。 Excelは、何を試しても保存を拒否しました。 Excelの別のインスタンスを開いて、ファイルのデータコンテンツをコピーアンドペーストして、バックアップとして保存することができました(この状況でコピーしようとするとExcelがクラッシュすると報告されています。 。)Microsoftの記事KB230164で説明されているように、レジストリにNetworkResiliencyサブキーを追加しようとしませんでした。次に、ごみ箱から一時ファイルを復元しました。

Excelを開き、そのファイルから一時ファイル(ランダムな8文字の名前)を開くと、元のスプレッドシートがそのまま作成され、その後、新しい名前でネットワークドライブに正常に保存できました。

その後、そのファイルまたは.xlsファイルを開こうとすると、Excelがクラッシュしました。しかし、コンピュータの再起動後はすべて問題ありませんでした。

0
Max Anderson