🔧
ClearAllNamedRanges
ユーティリティブック内のすべての名前定義を削除する
🎬 デモGIF準備中
📖 使い方
- VBAエディタを開く(Alt + F11)
- モジュールを挿入(挿入 > モジュール)
- 下記VBAコードをコピー&ペースト
- ブック上で実行(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