道具としてのExcel活用

重くなったExcelファイル その原因と対策×5+1選(2026年版)

肥大化した「重い」Excel、原因と対策は?

Excelファイルが”重い”と感じるのは、「定義が多い」からです。かといって、無暗に削除できないものも多いはず。

でも、大丈夫。削除せず、今のままでも「重いと感じ」なくなる方法もあります。

 

「重いExcel」は、なぜ重い?

当社はExcelを主体とした情報システムの開発を生業としているため、他社様のさまざまなExcelファイルを見てきています。年間500種類以上は見ているでしょうか。
このいわゆる「重いExcelですが」、ファイルサイズが肥大化し、動作速度が遅くなり、壊れやすい状態になること、と言えます。

ファイルをお預かりして内容を拝見する際、

  • ファイルを開くのに時間がかかる(概ね数十秒以上)
  • 何か入れると再計算に時間がかかり、その間何もできない
  • 検証用に別名保存しようとすると、たまに壊れる(再利用できなくなる)

といったことが、高頻度で発生します。これが、Excelファイルが「重い」とされる状態です。

 

Excelファイルが重くなる理由

理由1(1Bookに全部詰め込む)

Excelの使いやすさは、1ファイル(Book)に様々な目的のシートを作成し、相互に参照できる点です。

そこで、試行錯誤的に様々な要素を加えながら拡張していくと、様々な目的のものが混在してしまいます。例えば、

  • データ登録用(見積書/売上/仕訳情報など)
  • 参照されるデータ(顧客情報/商品情報など)
  • 集計表、グラフなどの資料類

といった要素がシートを増やして1Bookにある場合、シートや登録内容が増えるにつれて、重くなっていきます。

 

理由2(1シートに様々な要素が混在)

Excelが支持されている理由の1つが、式による参照と、sum関数、vlookup関数程度の知識があれば、それなりに実用的なビジネステンプレートが作れてしまう点が挙げられます。

ところで、Excelの特性として、下方向に同じ式が連続する分にはメモリを食わない(=サイズが肥大化しない)のですが、列方向に伸ばしたり、飛び飛びで式が入っていると、たとえ同じ式であってもメモリを消費し、動作速度も遅くなるだけでなく、不安定な動きをするようになります。つまり、最初100行分設定していた式を、「不足したので下方向につぎ足す」ような運用を繰り返すと、その都度新たな定義が内部的に行われてしまいます。

また、表が場当たり的に配置されていたりすると、連続領域ではないため、これもメモリを食う要因となりがちです。

 

理由3(罫線や色を、繰り返し設定)

Excelが支持されている理由の2つ目が、任意の位置に罫線や着色ができるところにあります。

この機能により、マーカー代わりに使って「黄色は今月請求するところ」のような使いかたができます。

しかし、実は着色や罫線は、1回ごとに内部的にIDが設定されるため、消して使いなおしても古いIDが残るため、容量を食ってしまいます。

このような使い方を長年続けてきた「秘伝のたれ」状態では、式をクリアしても内容を削除しても、ファイルサイズだけが大きいという不思議な状態となります。

入金消込処理の自動化(Excelで実現)

 

理由4(処理負荷の高い関数を多用)

意外と知られていませんが、Excelの関数はすべて同じ時間で処理できるわけではありません。

たとえば、データベース関数と呼ばれるもの(vlookupやsumif)は、内部的にはかなり高度な処理をしているため、IF関数やSUM関数などに比べてけた違いに処理時間がかかります。

また、INDIRECT関数のように、他のセル内を解釈しながら実行するタイプの関数も、処理に負荷がかかります。

こうした関数を組み合わせて多用していると、全体として処理が遅くなります。

やむを得ず使う場合、数式を手動計算に変更しておくと、入力の都度再計算で待たされることはなくなります。 ただし、再計算が手動になるので、忘れるとデータの整合性が失われる恐れがあります。

重たいExcelを軽くする 自動計算を止める設定方法

 

理由5(物量が多い)

当然といえば当然ですが、シート数が多い、式の行数/列数が多いということは、そのまま容量増大につながり、重くなります。

理由1で触れたように、全ての要素を1Bookに入れてしまうと、どうしてもシート数が増えがちです。よくあるのは、年月ごとにシートを持たせ、削除すると関数が壊れるので累々と10年分以上が残っているようなケースです(先日、二十数年分、300シートを超えるものを扱いました)。

この他、使うかもしれないという理由で、10,000行も指揮を設定しているような例も、よく見かけます。

 

Excelを軽くする対策5+1選

対策1:シートを分離する

経験上、最も確実に軽いExcelに近づけます。

内容の解析は不要なので、シートごとの目的により、「記入用」「結果表示用」「計算用」「検索用マスタ」…のように切り分け、必要最小限の組み合わせに分解します。

例えば、記入が目的であれば、結果を同じBook内で表示する必要はありませんから、入力シート+プルダウン選択用シートで、成立します。

対策2:関数の設定行数を限定する

使うかどうかもわからないのに、「念のため10,000行式を設定」に近いケースが少なくありません。

大きな変動がなければ「多めに設定」でもよいのですが、そうでなければ最初の1行にのみ設定しておき、あとは毎回必要な分だけコピペで展開するとよいでしょう。

対策3:単純なコピペをしない

コピペといえば、無造作にCTRL+Cや、貼り付けメニューを選択する人が多いのですが、そうするとセルの属性すべて(色、罫線、フォント・・・)を移植しようと、大きなメモリ空間を消費し、貼り付けた先にも大きな情報が移植されます。

単に式をコピペしたい場合は、数式のみを貼り付けるのが安全です。

Excelの数式貼り付け

 

対策4:新しいBookに乗り換える

構造によっては時間もかかりますが、最も確実に軽量化できます。

ここで単純コピペをしてしまうと、元の木阿弥ですから、値や式のみを移植します。

一度SYLC形式に落としてから移植すると式が残るので、手入力要素を最小限にできます。重たいExcelを軽くする方法(Bookを乗り換える)

 

対策5:書式設定を減らす

”書式”とは、セルの色や罫線など、文字入力以外で見た目などが変わる要素です。これが意外と容量を食うため、必要最小限に減らすことで、驚くほど軽くなります。

  • 広範囲に設定された条件付き書式を見直し、必要な範囲に限定します。
  • 不要なセルの書式設定をクリアします。
  • 画像・図形の圧縮・削除: 挿入されている画像を圧縮したり、不要な図形を削除したりします。
  • 名前定義の整理: 「数式」タブの「名前の管理」から、使用していない名前定義を削除します。

 

対策6:専門家に丸投げする

いずれの方法をとるにせよ、移植前後で内容がこわれていないか、検証しておきましょう。思いもかけないところが壊れていて、気づくのが遅れるのが一番避けたい事象です。

短期間で、内容を保証した軽量化が必要な場合、Excelファイルの軽量化実績の多い業者に依頼するのも解決法の1つです。

もちろん、当社も長年多くの軽量化を実施しており、短期間に大量ファイルを軽量化するノウハウがあります。ファイルの簡易診断は無料で行っていますので、選択肢の1つに加えていただければ幸いです。

 

※以前にも同様のテーマで書きましたが、最近「重い」の要因が変わってきたので、改めて整理しました。よろしければ併せてご覧ください。