2015-02-12
ExcelVBA覚書 名前定義を削除する
Excelで数式やマクロを使うとき便利だからと名前を定義する人がいるが、本当にやめてほしい「悪習」だと私は思う。
なぜかって、シートのコピーするたびにグチグチ名前重複してもいいか聞いてきて、「もう好きにしろよ!」って思っても、ずぅ~っとすべての名前について聞いてくるのが、まぁ性質の悪いこと、悪いこと!
そういうことがわかっていれば、簡単に名前定義は使わないと思うのだが、まぁ使ってますな・・・
で、削除しちゃえ!
※ 2021/03/03 ブック内の名前定義を削除させるロジック追加
Sub DeleteNamesExcludePrintX() Dim ws As Worksheet Dim nm As Name ' シート内の定義(Printから始まる名前定義は印刷設定なので除外) For Each ws In ThisWorkbook.Worksheets For Each nm In ws.Names Debug.Print nm.NameLocal & ": " & nm.Name If nm.Name Like "*Print_*" Then Else nm.Delete End If Next Next ' ブック内の定義 For Each nm In ThisWorkbook.Names Debug.Print "** " & nm.NameLocal & ": " & nm.Name nm.Delete Next End Sub
削除するのはいいんだけど、印刷設定まで消すとまずいので、「Print_」から始まる名前は消さないでおく。
(印刷範囲と印刷タイトルが該当する)
ただし、マクロとか数式とかで使ってたらエライコトになるのでご注意を。