皆さんは業務の中でエクセルがフリーズした経験はありますか?私はしょっちゅう経験しています。正直経験したくないです。
当記事では私が最もよく用いる、重いエクセルを軽くする方法をご紹介します!エクセルファイルを軽くする方法は色々ありますが、今回ご紹介する方法は、経験上1番効果のある方法です!
大抵の場合、エクセルブックのファイルサイズが大きい場合に、フリーズが発生します。
プラグインの使用やチャートやグラフの多用、参照箇所更新のたび再計算される関数の利用等、ファイルサイズが大きくなる原因は様々です。しかし多くの場合、データ分析に必要なグラフを消すことはできないし、便利な関数を使わないという選択肢はありません。
プラグイン:アプリケーション機能拡張のために追加的に導入されるソフトウェアのこと
そこで今回は、そのファイルの機能性を落とさずに、ファイルサイズを小さくする方法をご紹介します。この方法は、社内で使いまわしされているようなファイルに対して、特にその効果を発揮します。新規で作成したファイルが重い場合には効果が薄い点ご留意ください。
当記事でご紹介する方法で削除するのは、「名前の定義」です。何それ?という方もいらっしゃると思うので一緒に見てみましょう。何か編集して保存されているエクセルファイルを開いて、Ctrl + F3を押してください。

こんな画面が立ち上がりますよね。ここに並んでいるのが「名前の定義」です。そんなにたくさんないけど、こんなの消したって全然軽くならないでしょ、と思われた方もいるかもしれませんね。
もちろん、これだけ消してもほとんどファイルサイズは変わりません。
しかし、エクセルはここに並んでいる名前の定義以外に「暗黙的な」名前の定義を保有しています。使い回しされているファイルは可視化されない名前の定義を大量に保有していることが多くあり、これがファイルサイズを大きくしていることが往々にしてあります。それらを出現(可視化)させ、削除することでエクセルを軽くできるのです。
では早速手順に従ってやっていきましょう!
エクセルを軽くする8ステップ
ステップ1:ファイルサイズを軽くしたいエクセルファイルを開く
マクロが無効化されている場合は有効化しておいてください。
ステップ2:Alt + F11を押下
この操作でVBAの編集画面が立ち上がります(ステップ3の画像参照)。
ステップ3:左メニューの「ThisWorkbook」をダブルクリック

ステップ4:出現した白い枠の中に以下のコードをコピペ
Sub visualiseNames()
Dim objName as object
For each objName in names
if objName.visible = false then
objName.visible = true
end if
Next
Msgbox “処理完了”
End Sub

ステップ5:F5を押下
コピペした上記プロシージャ内にカーソルが乗っている状態で押下してください
ステップ6:「処理完了」のメッセージボックスが出現したらOKボタンを押下
ステップ7:VBA画面を閉じる
ステップ8:Ctrl + F3を押下し、不要な「名前の定義」を削除
印刷設定をおこなっている場合、「Print_Area」が生成されますので、必要な印刷設定は残してください。削除すると再度設定し直すことになります。私は要否判定が面倒なので「Print_Area」はいつもすべて残します。

また、拡張子がxlsm等のマクロブックで名前の定義を削除する際もご注意ください。セルやレンジに名前を付け、それを認識させて動かす方法があり、その定義を消してしまうとマクロが正常終了しなくなることがあります。
セルやレンジに名前の定義を与える方法は、汎用性が低い(仕様変更に弱い)ので私はあまり使用しませんが、開発者によっては好んで使う方もいるので、人が開発したブックを使う場合は開発者に相談してから削除する方が良いと思います!
まとめ
いかがでしたか?エクセルブックによっては、上記VBAコードの実行により大量の名前の定義が出現したのではないでしょうか。
私もエクセルファイルを軽くすべく、色んな方法を試してきましたが、まだ今回ご紹介した方法に勝るものには出会っていません。この方法を活用し、サクサク動くエクセルファイルでより良いワークライフを実現してください!
以上です!
コメント