症状
Office 2013/2016/Microsoft 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 で行った変更の詳細については、「 32 ビット 版の Excel 2013 のメモリ使用量」を参照してください。
解決策
この問題を解決するには、表示される順序で次のメソッドを使用します。 これらのメソッドのいずれかが役に立たない場合は、次のメソッドに進みます。
注
多くの Excel ブックには、問題を引き起こすいくつかの課題があります。 これらの問題を解消すると、ワークブックの実行がよりスムーズになります。
書式設定の考慮事項
書式設定すると、Excel ブックが大きくなり、正しく機能しなくなる可能性があります。 書式設定の問題が原因で Excel がハングまたはクラッシュする場合が多い。
方法 1: 過剰な書式設定を排除する
Excel ブックの書式設定が過剰になると、ファイルが大きくなり、パフォーマンスが低下する可能性があります。 列全体または行全体を色または罫線で書式設定した場合、書式設定は過剰と見なされます。 この問題は、書式設定で Web ページまたはデータベースからデータをコピーまたはインポートする必要がある場合にも発生します。 余分な書式設定を排除するには、 ワークシートの [余分なセルの書式設定をクリーンアップする] で使用できる書式クリーナー アドインを使用します。
余分な書式設定を排除した後も引き続き問題が発生する場合は、方法 2 に進みます。
方法 2: 未使用のスタイルを削除する
スタイルを使用して、ブック全体で使用する形式を標準化できます。 あるブックから別のブックにセルをコピーすると、そのスタイルもコピーされます。 これらのスタイルは引き続きファイルを拡大し続け、古いバージョンのファイルに保存すると、最終的に Excel で "異なるセル形式が多すぎます" というエラー メッセージが表示される可能性があります。
使用されていないスタイルを削除する多くのユーティリティを使用できます。 XML ベースの Excel ブック (つまり、.xlsx ファイルまたは xlsm ファイル) を使用している限り、スタイル クリーナー ツールを使用できます。 このツール はこちらをご覧ください。
未使用のスタイルを削除した後も引き続き問題が発生する場合は、方法 3 に進みます。
方法 3: 図形を削除する
スプレッドシートに多くの図形を追加するには、多くのメモリも必要です。 図形は、Excel グリッド上にある任意のオブジェクトとして定義されます。 いくつかの例を次に示します。
- グラフ
- 図形の描画
- コメント
- クリップアート
- SmartArt
- 写真
- ワードアート
多くの場合、これらのオブジェクトは Web ページや他のワークシートからコピーされ、非表示になっているか、互いに座っています。 多くの場合、ユーザーは自分が存在することを認識しない場合があります。
図形を確認するには、次の手順に従います。
- [ホーム] リボンの [ 検索と選択] をクリックし、[ 選択ウィンドウ] をクリックします。
- このシートの図形をクリックします。 図形が一覧に表示されます。
- 不要な図形を削除します。 (目のアイコンは、図形が表示されているかどうかを示します)。
- ワークシートごとに手順 1 ~ 3 を繰り返します。
図形を削除した後も引き続き問題が発生する場合は、書式設定に関連しない考慮事項を確認する必要があります。
方法 4: 条件付き書式を削除する
条件付き書式を設定すると、ファイルが大きくなる可能性があります。 これは、ファイル内の条件付き書式が破損している場合に発生します。 条件付き書式をテストとして削除して、書式設定の破損に問題があるかどうかを確認できます。 条件付き書式を削除するには、次の手順に従います。
- ファイルのバックアップを保存します。
- [ホーム] リボンの [ 条件付き書式] をクリックします。
- ワークシート全体からルールをクリアします。
- ブック内のワークシートごとに、手順 2 と 3 に従います。
- 別の名前を使用してブックを保存します。
- 問題が解決されたかどうかを確認します。
条件付き書式を削除すると問題が解決する場合は、元のブックを開き、条件付き書式を削除してから、再適用することができます。
問題は残っていますか?
これらの方法が機能しない場合は、64 ビット 版の Excel に移行したり、問題のあるブックを別のブックに分割したり、サポートに連絡して追加のトラブルシューティングを行ったりすることを検討できます。
計算に関する考慮事項
書式設定に加えて、計算によって Excel でクラッシュやハングが発生する可能性もあります。
方法 1: 最新バージョンの Excel でブックを開く
新しいバージョンの Excel で初めて Excel ブックを開くと、ブックに多くの計算が含まれている場合、時間がかかる場合があります。 ブックを初めて開くには、Excel でブックを再計算し、ブック内の値を確認する必要があります。 詳細については、Excel で初めてブックを開くと読み込みが遅くなる」を参照してください。
Excel がファイルを完全に再計算し、ファイルを保存した後もファイルの開きが遅い場合は、方法 2 に進みます。
方法 2: 数式
ワークブックを確認して、使用している数式の種類を調べてください。 一部の数式には多くのメモリが必要です。 これには、次の配列数式が含まれます。
- 検索
- 間接的
- オフセット
- インデックス
- マッチ
使用しても問題ありません。 ただし、参照している範囲に注意してください。
列全体を参照する数式により、.xlsx ファイルのパフォーマンスが低下する可能性があります。 グリッド サイズは 65,536 行から 1,048,576 行に、256 (IV) 列から 16,384 (XFD) 列に増加しました。 ベスト プラクティスではありませんが、数式を作成する一般的な方法は、列全体を参照することでした。 以前のバージョンの列を 1 つだけ参照していた場合は、65,536 個のセルのみを含めていました。 新しいバージョンでは、100 万を超える列を参照しています。
次の VLOOKUP があるとします。
=VLOOKUP(A1,$D:$M,2,FALSE)
Excel 2003 以前のバージョンでは、この VLOOKUP は 655,560 個のセル (10 列 x 65,536 行) のみを含む行全体を参照していました。 ただし、新しい大きなグリッドでは、同じ数式で約 1,050 万個のセルが参照されます (10 列 x 1,048,576 行 = 10,485,760)。
これは、Office 2016/365 バージョン 1708 16.0.8431.2079 以降で修正されています。 Office を更新する方法については、「Office の更新プログラムをインストールする」を参照してください。
以前のバージョンの Office では、数式に必要なセルのみを参照するように数式を再構築する必要がある場合があります。
注
定義された名前を調べて、列または行全体を参照する他の数式がないことを確認します。
注
このシナリオは、行全体を使用する場合にも発生します。
使用されているセルのみを参照するように数式を変更した後も問題が発生し続ける場合は、方法 3 に進みます。
方法 3: 複数のブックを跨いで計算する
ブック間で計算を行う数式を制限します。 これは、次の 2 つの理由で重要です。
- ネットワーク経由でファイルを開こうとしています。
- Excel では、大量のデータを計算しようとしています。
ネットワーク間で計算を行う代わりに、数式を 1 つのブックに含め、ブック間で簡単なリンクを作成します。
ブック間で計算するのではなく、セルのみを参照するように数式を変更した後も引き続き問題が発生する場合は、方法 4 に進みます。
方法 4: 揮発性関数
ワークブック内の揮発性関数の使用を制限します。 TODAY 関数または NOW 関数を使用する何百ものセルを含める必要はありません。 スプレッドシートに現在の日付と時刻が必要な場合は、関数を 1 回使用し、リンクの定義された名前を使用して関数を参照します。
揮発性の数式を制限した後も引き続き問題が発生する場合は、方法 5 に進みます。
方法 5: 配列数式
配列数式は強力です。 ただし、正しく使用する必要があります。 必要以上に多くのセルを配列に追加しないことが重要です。 配列内のセルに計算が必要な数式がある場合、その数式で参照されているすべてのセルに対して計算が行われます。
配列の動作の詳細については、「 Excel 2010 パフォーマンス: パフォーマンスの問題を最適化するためのヒント」を参照してください。
配列数式を更新した後も引き続き問題が発生する場合は、方法 6 に進みます。
方法 6: 定義された名前
定義された名前は、ブック全体でセルと数式を参照し、数式に "フレンドリ名" を追加するために使用されます。 他のブックや一時インターネットファイルにリンクされている定義済み名がないかを確認してください。 通常、これらのリンクは不要であり、Excel ブックの開きが遅くなります。
名前マネージャー ツールを使用すると、Excel インターフェイスに表示できない非表示の定義された名前を表示できます。 このツールを使用すると、不要な定義された名前を表示および削除できます。
不要な定義名を削除しても Excel がクラッシュしてハングし続ける場合は、方法 7 に進みます。
方法 7: リンクとハイパーリンク
Excel の機能は、他のスプレッドシートからライブ データを取り込む能力にあります。 ファイルとリンク先の外部ファイルのインベントリを取得します。 Excel では、リンクできる Excel ブックの数に制限はありませんが、発生する可能性のある問題がいくつかあります。 リンクなしでファイルをテストして、問題がこのファイルにあるか、リンクされたファイルの 1 つにあるかを判断します。
進んでいます
これらは、Excel でハングやクラッシュを引き起こす最も一般的な問題です。 Excel でクラッシュやハングが引き続き発生する場合は、Microsoft でサポート チケットを開くかどうかを検討する必要があります。
詳細情報
これらの方法に違いがない場合は、64 ビット 版の Excel に移行するか、問題のブックを別のブックに分割することを検討する必要があります。