【VBA】定義された名前の削除:Excelのファイルが重くなっていたら確認したい項目の1つ!

シェアする

NameDelete1
Excelのファイルを扱っているとたまに何でこんなに重い(ファイルサイズが大きくなる)んだ~と思うことがあります。

それにはいくつかの原因が考えられるのですが、その1つが定義された名前によるもの。普段使用されない方にとっては何それ?という感じでしょうが、一度使用されると、他のファイルにシートのコピーとかで名前もコピーされ、ファイルに蓄積してしまい、その結果ファイルが重くなるという現象はよくあることです。

そんなの使わないし、削除してファイルを軽くしたい!という方向けに削除の方法をまとめてみます。

Contents

定義された名前の確認方法と削除の方法

確認方法はこの「名前の管理」から。
NameDelete2
ここに載っているものが既に定期されている名前です。削除したい場合には名前を選択して、削除ボタンを押せばOK!
NameDelete3
しかし、この方法だと1個1個消していくしかなく、この繰り返しはファイルによっては延々と作業しないといけないこともしばしば。そのためそんな作業をマクロでやってしまおうというのが次に書くコードです。

定義された名前を一括で削除してしまう方法

VBAを使えばこの数行で終わりです。このマクロを動作させることによって、動作させたファイルの中に定義されている「名前」が削除されます。

ただ、Excelを使っている人の中には「印刷範囲の設定」を行っている方もいらっしゃると思いますが、その設定がこのマクロを動作させると一緒に消えてしまう点には注意してください。これを回避したい場合は、

InStr関数はMyNameの中に”Print_Area”が含まれていれば1以上、そうでなければ0(Nullでなく)を返してくれるので、それで取り扱いを分岐させることができます。

あとがき

今回はファイルの容量を軽くする手段として定義された名前を削除する方法を書きました。

ただ今回紹介した方法も完全ではありません若干名前が残ることがあります
ただ、多くの場合、残るのは少量で、上記の手動でやる方法で事足りる場合がほとんどですので、その場合は触れません(コードもちょっと難しいし・・)

コードとしてはかなり短いものなのでぜひ気軽に試してみてください!

シェアする

フォローする