[VBA]定義された名前を削除する
何度も使いまわされたExcelファイルには結構ゴミ(既に意味のない定義された名前)がついてることが多々ある。
名前が定義されていると、ファイルサイズが大きくなったり、
前に使っていた人が無意識にサーバ名とか顧客のフォルダ名を登録しててそのままだったりする
(セキュリティ的にもどうなの、、、)
ので、気付いたら消すようにしている。
通常は、
数式>名前の管理
で、不要の名前を選択して削除
(Excel2010)
挿入>名前>定義
で、不要の名前を選択して削除
(Excel2003)
でうまくいくんだけど、Excel2010では
名前リストを全削除したのに、保存時の互換性チェックで
「このブックのいくつかの数式は、現在閉じている他のブックにリンクされています。
以前のバージョンの Excel では、リンク先のブックを開いていないときにこれらの数式を再計算すると、255 文字を超える部分は返されません。
場所:定義された名前」
というメッセージが表示されてしまう。
そこでVBAに以下のコードを書き込んで実行し、名前を全部消してしまうことにした。
-------------------------------------------------
Sub ClearAllNames()
Dim objName As Name
For Each objName In ActiveWorkbook.Names
objName.Delete
Next objName
End Sub
-------------------------------------------------
上のコードを実行してから保存すると、上記のメッセージはでなくなった。
実行して、名前の定義が消えていることを確認したら、VBAに追加したコードは削除しておこうね。(そのコードが次にゴミになったりいらんことをしたりするので・・・
コメント