その他 Tips
Sponsored Link

「名前の定義」を削除する
2013/02/12

  エクセルブック中の「印刷範囲」を除く、全ての「名前の定義」を削除するサンプルです。
コピー等で散々使いまわされたブックには、手作業で削除するには不可能なほどの大量の無意味な「名前の定義」が保存されていることがあり、 そのようなブックをバージョンの異なるエクセルで開こうとすると 「このブックには無効な名前が含まれています。無効な名前は #REF!に変更されました。」 というエラーが出ます。無意味な名前の定義は一括で削除してしまいましょう。
Option Explicit

Private Sub CommandButton1_Click()
    Dim Ans, RefStyle, n
    
    Ans = MsgBox("実行しますか?", vbYesNo, "実行確認")
    If Ans = vbNo Then Exit Sub
    
    RefStyle = Application.ReferenceStyle
    
    If RefStyle = xlR1C1 Then
        Application.ReferenceStyle = xlA1
    Else
        Application.ReferenceStyle = xlR1C1
    End If

    For Each n In ActiveWorkbook.Names
        If Not n.Name Like "*!Print_Area" And _
            Not n.Name Like "*!Print_Titles" Then
            n.Delete
        End If
    Next

    Application.ReferenceStyle = RefStyle
    
    MsgBox "完了しました!"
End Sub
関連コンテンツ