📊 Excel VBA Top100
🔧

ClearAllNamedRanges

ユーティリティ

ブック内のすべての名前定義を削除する

🎬 デモGIF準備中

📖 使い方

  1. VBAエディタを開く(Alt + F11)
  2. モジュールを挿入(挿入 > モジュール)
  3. 下記VBAコードをコピー&ペースト
  4. ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: 実行するとすべての名前定義が削除される(確認ダイアログ付き)

💻 VBAコード

' ClearAllNamedRanges
' -----------------
' Macro Name: ClearAllNamedRanges
' Description: ブック内のすべての名前定義を削除する
' Parameters: なし
' Returns: なし
' Usage: 実行するとすべての名前定義が削除される(確認ダイアログ付き)
' -----------------

Sub ClearAllNamedRanges()
    Dim wb As Workbook
    Dim nm As Name
    Dim countDeleted As Long
    Dim nmNames() As String
    Dim i As Long

    On Error GoTo ErrorHandler

    Set wb = ActiveWorkbook

    If wb.Names.Count = 0 Then
        MsgBox "名前定義は存在しません。", vbInformation
        Exit Sub
    End If

    If MsgBox("すべての名前定義 (" & wb.Names.Count & "件) を削除しますか?" & vbCrLf & "この操作は元に戻せません。", _
        vbYesNo + vbExclamation, "名前定義全削除") = vbNo Then
        Exit Sub
    End If

    ReDim nmNames(1 To wb.Names.Count)
    i = 1
    For Each nm In wb.Names
        nmNames(i) = nm.Name
        i = i + 1
    Next nm

    countDeleted = 0
    For i = 1 To UBound(nmNames)
        On Error Resume Next
        wb.Names(nmNames(i)).Delete
        If Err.Number = 0 Then
            countDeleted = countDeleted + 1
        End If
        On Error GoTo ErrorHandler
    Next i

    MsgBox countDeleted & " 件の名前定義を削除しました。", vbInformation
    Exit Sub

ErrorHandler:
    MsgBox "エラーが発生しました: " & Err.Description, vbCritical
End Sub