メモリ使用量が少ないように Excel ブックをクリーンアップする方法

症状

Microsoft Office 2013/2016/Office 365 にアップグレードすると、次の1つ以上の現象が発生します。

  • 複数の Microsoft Excel 2013 ブックを開いたとき、Excel ブックを保存するとき、または Excel ブックで計算を行うときに、コンピューターのメモリ使用量が増加します。

  • Excel 2013/2016 にアップグレードする前に、同じインスタンスで Excel ブックを複数開くことができなくなりました。 

  • Excel ブックに列を挿入すると、使用可能なメモリに関するエラーが表示されます。

  • Excel スプレッドシートを使用して作業しているときに、次のエラーメッセージが表示されます。

    There isn't enough memory to complete this action.
    Try using less data or closing other applications.
    To increase memory availability, consider:
       - Using a 64-bit version of Microsoft Excel.
       - Adding memory to your device.
    

エラーメッセージ

原因

Excel 2013 以降では、以前のバージョンよりも多くのシステムリソースを必要とする改良が行われました。 この記事では、多くのメモリを使用する Excel ブックの領域を特定し、ブックファイルの効率を向上させる方法について説明します。 

Excel 2013 で行われた変更の詳細については、「 excel 2013 の32ビット版のメモリ使用率」を参照してください。

解決策

この問題を解決するには、以下の方法を記載されている順に使用します。 これらの方法のいずれかを使用しても問題が解決しない場合は、次の方法に進みます。

注意

多くの Excel ブックには、問題があるいくつかの問題があります。 これらの問題を解決すると、ブックがよりスムーズに実行されます。

書式設定に関する考慮事項

書式を設定すると、Excel ブックが非常に大きくなり、正常に動作しないことがあります。 多くの場合、Excel がハングするか、書式設定の問題が原因でクラッシュします。

方法 1: 書式設定を削除する

Excel ブックで書式を設定すると、ファイルが拡張され、パフォーマンスが低下する可能性があります。 色または罫線を使用して列全体または行全体を書式設定した場合、書式設定は過剰であると見なされます。 この問題は、書式設定時に web ページまたはデータベースからデータをコピーまたはインポートする必要がある場合にも発生します。 不要な書式設定を削除するには、ワークシートのセルの書式設定を完全に削除するのに使用できるクリーナーの書式設定を使用します。

余分な書式設定を削除しても問題が解決しない場合は、方法2に進みます。

方法 2: 使用されていないスタイルを削除する

スタイルを使用して、ブック全体で使用する形式を標準化することができます。 ブック間でセルがコピーされると、そのスタイルもコピーされます。 これらのスタイルを使用すると、ファイルが拡張され、以前のバージョンのファイルに保存したときに Excel で "異なるセルの書式が多すぎます" というエラーメッセージが表示されることがあります。

使用されていないスタイルを削除する多くのユーティリティを使用できます。 XML ベースの Excel ブック (つまり、.xlsx ファイルまたは) を使用している場合に限ります。 .xlsm ファイル) を使用すると、スタイルのクリーナーツールを使用できます。 このツールはこちらから入手できます。

使用されていないスタイルを削除しても引き続き問題が発生する場合は、方法3に進みます。

方法 3: 図形を削除する

スプレッドシートに多数の図形を追加するには、多くのメモリが必要になります。 図形は、Excel グリッド上にある任意のオブジェクトとして定義されます。 次に例を示します。

  • グラフ
  • 図形の描画
  • Comments
  • クリップアート
  • SmartArt
  • ピクチャ
  • ワードアート

多くの場合、これらのオブジェクトは web ページまたは他のワークシートからコピーされ、表示されていないか、互いに表示されています。 多くの場合、ユーザーが存在することは認識されません。

図形をチェックするには、次の手順を実行します。

  1. [ホーム] リボンの [検索] をクリックし、[選択ペイン] をクリックします。
  2. このシートの図形をクリックします。 図形は一覧に表示されます。
  3. 不要な図形を削除します。 (目のアイコンは、図形が表示されているかどうかを示します)。
  4. 各ワークシートについて、手順 1 ~ 3 を繰り返します。

図形を削除しても問題が解決しない場合は、書式設定に関連しない考慮事項を確認する必要があります。

方法 4: 条件付き書式を削除する

条件付き書式を設定すると、ファイルが拡張されることがあります。 これは、ファイル内の条件付き書式が破損している場合に発生します。 条件付き書式を削除して、問題が書式設定に破損しているかどうかを確認することができます。 条件付き書式を削除するには、次の手順を実行します。

  1. ファイルのバックアップを保存します。
  2. [ホーム] リボンの [条件付き書式] をクリックします。
  3. ワークシート全体からルールをクリアします。
  4. ブック内の各ワークシートについて、手順2と3を実行します。
  5. 別の名前を使用してブックを保存します。
  6. 問題が解決されたかどうかを確認します。

条件付き書式を削除すると問題が解決される場合は、元のブックを開いて、条件付き書式を削除してから、もう一度適用します。

問題が残っていますか?

これらの方法がどれも動作しない場合は、64ビット版の Excel に移行するか、問題のブックを異なるブックに分割するか、またはサポートに連絡して追加のトラブルシューティングを行うことを検討してください。

計算に関する考慮事項

書式設定に加えて、計算によって Excel のクラッシュやハングが発生することもあります。

方法 1: 最新バージョンの Excel でブックを開く

ブックに多くの計算が含まれている場合、excel の新しいバージョンで初めて Excel ブックを開くと、長い時間がかかる場合があります。 最初にブックを開くには、ブックを再計算してブック内の値を確認する必要があります。 詳細については、以下の記事を参照してください。

Excel によってファイルが完全に再計算され、ファイルを保存した後、ファイルの開きが遅くなる場合は、方法2に進みます。

方法 2: 数式

ブック全体を調べて、使用している数式の種類を確認します。 一部の数式は、多くのメモリを消費します。 これには、次の配列数式が含まれます。

  • 参照
  • INDIRECT 
  • 位置
  • MATCH

これらを使用するのは問題ありません。 ただし、参照している範囲に注意してください。

列全体を参照する数式は、.xlsx ファイルのパフォーマンスが低下する可能性があります。 グリッドのサイズは、65536行から1048576行、256 (IV) 列から 16384 (XFD) 列に伸びています。 最良の方法ではなく、列全体を参照する数式を作成するための一般的な方法です。 以前のバージョンの1つの列のみを参照していた場合は、65536のセルのみが含まれていました。 新しいバージョンでは、100万を超える列を参照しています。

次の VLOOKUP があるとします。

=VLOOKUP(A1,$D:$M,2,FALSE) 

Excel 2003 以前のバージョンでは、この VLOOKUP は、655560セルのみを含む行全体 (10 列 x 65536 行) を参照していました。 しかし、新しい大きなグリッドでは、同じ数式は1050万のセルをほぼ参照しています (10 列 x 1048576 行 = 10485760)。

これは、Office 2016/365 バージョン 1708 16.0.8431.2079 で修正されています。 Office を更新する方法については、「 office の更新プログラムをインストールする」を参照してください。

以前のバージョンの Office では、数式に必要なセルのみを参照するように数式を再構築する必要がある場合があります。

注意

定義された名前を調べて、列または行全体を参照する他の数式がないことを確認してください。

注意

行全体を使用している場合も、このシナリオが発生します。

使用されているセルのみを参照するように数式を変更した後でも引き続き問題が発生する場合は、方法3に進みます。

方法 3: ブック間で計算を行う

ブック全体で計算を行う数式を制限します。 これは、次の2つの理由で重要です。

  • ネットワーク上でファイルを開こうとしています。
  • Excel が大量のデータを計算しようとしています。

複数のネットワークにわたる計算を行わずに、1つのブックに数式を入力した後、1つのブックから別のブックに簡単なリンクを作成します。

ブック全体を計算するのではなく、セルのみを参照するように数式を変更した後、問題が引き続き発生する場合は、方法4に進みます。

方法 4: 揮発性関数

ブック内の揮発性関数の使用を制限します。 TODAY 関数または NOW 関数を使用する数百のセルを用意する必要はありません。 スプレッドシートに現在の日付と時刻を設定する必要がある場合は、関数を1回使用して、定義されたリンク名を使用して関数を参照します。

変動式を制限した後も引き続き問題が発生する場合は、方法5に進みます。

方法 5: 配列数式

配列数式は強力です。 ただし、適切に使用する必要があります。 配列には、必要なセルを追加しないことが重要です。 配列内のセルに計算が必要な数式が含まれている場合、その数式で参照されているすべてのセルに対して計算が行われます。

配列の動作の詳細については、「 Excel 2010 のパフォーマンス: パフォーマンスの問題を最適化するためのヒント」を参照してください。

配列数式を更新した後も引き続き問題が発生する場合は、方法6に進みます。

方法 6: 定義された名前

定義名は、ブック全体を通してセルや数式を参照して、"フレンドリ名" を数式に追加するために使用されます。 他のブックまたは一時インターネットファイルにリンクされている定義済みの名前があるかどうかを確認する必要があります。 通常、これらのリンクは不要で、Excel ブックを開くのに時間がかかります。

Name Manager ツールを使用して、Excel のインターフェイスに表示されない、非表示になっている定義済みの名前を表示することができます。 このツールを使用すると、必要のない定義名を表示したり、削除したりできます。

不要な定義名を削除した後も Excel がクラッシュしてハングアップする場合は、方法7に進みます。

Excel のパワーは、他のスプレッドシートからライブデータを取り込む機能にあります。 ファイルのインベントリと、そのファイルがリンクされている外部ファイルを取得します。 Excel には、リンクできる Excel ブックの数に制限はありませんが、いくつかの問題が発生することがあります。 リンクなしでファイルをテストし、問題がこのファイルにあるのか、リンクされたファイルのいずれかであるかを確認します。

進んでいます

Excel でハングしてクラッシュする原因となる最も一般的な問題を以下に示します。 Excel でのクラッシュとハングがまだ発生している場合は、Microsoft とのサポートチケットを開くことを検討してください。

詳細

これらの方法に違いがある場合は、64ビット版の Excel に移行するか、問題のブックを別のブックに分割することを検討する必要があります。

Excel での "使用可能なリソース" エラーのトラブルシューティング方法

Excel: Excel ブックでのクラッシュと "応答しない" 問題のトラブルシューティング方法