道具としての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が残るため、容量を食ってしまいます。
このような使い方を長年続けてきた「秘伝のたれ」状態では、式をクリアしても内容を削除しても、ファイルサイズだけが大きいという不思議な状態となります。

理由4(処理負荷の高い関数を多用)
意外と知られていませんが、Excelの関数はすべて同じ時間で処理できるわけではありません。
たとえば、データベース関数と呼ばれるもの(vlookupやsumif)は、内部的にはかなり高度な処理をしているため、IF関数やSUM関数などに比べてけた違いに処理時間がかかります。
また、INDIRECT関数のように、他のセル内を解釈しながら実行するタイプの関数も、処理に負荷がかかります。
こうした関数を組み合わせて多用していると、全体として処理が遅くなります。
やむを得ず使う場合、数式を手動計算に変更しておくと、入力の都度再計算で待たされることはなくなります。 ただし、再計算が手動になるので、忘れるとデータの整合性が失われる恐れがあります。

理由5(物量が多い)
当然といえば当然ですが、シート数が多い、式の行数/列数が多いということは、そのまま容量増大につながり、重くなります。
理由1で触れたように、全ての要素を1Bookに入れてしまうと、どうしてもシート数が増えがちです。よくあるのは、年月ごとにシートを持たせ、削除すると関数が壊れるので累々と10年分以上が残っているようなケースです(先日、二十数年分、300シートを超えるものを扱いました)。
この他、使うかもしれないという理由で、10,000行も指揮を設定しているような例も、よく見かけます。
Excelを軽くする対策5+1選
対策1:シートを分離する
経験上、最も確実に軽いExcelに近づけます。
内容の解析は不要なので、シートごとの目的により、「記入用」「結果表示用」「計算用」「検索用マスタ」…のように切り分け、必要最小限の組み合わせに分解します。
例えば、記入が目的であれば、結果を同じBook内で表示する必要はありませんから、入力シート+プルダウン選択用シートで、成立します。
対策2:関数の設定行数を限定する
使うかどうかもわからないのに、「念のため10,000行式を設定」に近いケースが少なくありません。
大きな変動がなければ「多めに設定」でもよいのですが、そうでなければ最初の1行にのみ設定しておき、あとは毎回必要な分だけコピペで展開するとよいでしょう。
対策3:単純なコピペをしない
コピペといえば、無造作にCTRL+Cや、貼り付けメニューを選択する人が多いのですが、そうするとセルの属性すべて(色、罫線、フォント・・・)を移植しようと、大きなメモリ空間を消費し、貼り付けた先にも大きな情報が移植されます。
単に式をコピペしたい場合は、数式のみを貼り付けるのが安全です。

対策4:新しいBookに乗り換える
構造によっては時間もかかりますが、最も確実に軽量化できます。
ここで単純コピペをしてしまうと、元の木阿弥ですから、値や式のみを移植します。
一度SYLC形式に落としてから移植すると式が残るので、手入力要素を最小限にできます。
対策5:書式設定を減らす
”書式”とは、セルの色や罫線など、文字入力以外で見た目などが変わる要素です。これが意外と容量を食うため、必要最小限に減らすことで、驚くほど軽くなります。
- 広範囲に設定された条件付き書式を見直し、必要な範囲に限定します。
- 不要なセルの書式設定をクリアします。
- 画像・図形の圧縮・削除: 挿入されている画像を圧縮したり、不要な図形を削除したりします。
- 名前定義の整理: 「数式」タブの「名前の管理」から、使用していない名前定義を削除します。
対策6:専門家に丸投げする
いずれの方法をとるにせよ、移植前後で内容がこわれていないか、検証しておきましょう。思いもかけないところが壊れていて、気づくのが遅れるのが一番避けたい事象です。
短期間で、内容を保証した軽量化が必要な場合、Excelファイルの軽量化実績の多い業者に依頼するのも解決法の1つです。
もちろん、当社も長年多くの軽量化を実施しており、短期間に大量ファイルを軽量化するノウハウがあります。ファイルの簡易診断は無料で行っていますので、選択肢の1つに加えていただければ幸いです。
※以前にも同様のテーマで書きましたが、最近「重い」の要因が変わってきたので、改めて整理しました。よろしければ併せてご覧ください。