Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements. The macro displays a message box that lists three
items: (1) whether the defined name is visible or hidden, (2) the defined name,
and (3) what that name refers to (the workbook cell reference). You may choose
Yes or No to delete or to keep each defined name.
CAUTION: Removing
names that contain links can eliminate errant links; however, doing so could
affect the integrity of your data and return unexpected results. Microsoft
recommends that you create a backup of your workbook before running this macro
which may make changes to your data.
Visual Basic Code Example
' Module to remove all hidden names on active workbook
Sub Remove_Hidden_Names()
' Dimension variables.
Dim xName As Variant
Dim Result As Variant
Dim Vis As Variant
' Loop once for each name in the workbook.
For Each xName In ActiveWorkbook.Names
'If a name is not visible (it is hidden)...
If xName.Visible = True Then
Vis = "Visible"
Else
Vis = "Hidden"
End If
' ...ask whether or not to delete the name.
Result = MsgBox(prompt:="Delete " & Vis & " Name " & _
Chr(10) & xName.Name & "?" & Chr(10) & _
"Which refers to: " & Chr(10) & xName.RefersTo, _
Buttons:=vbYesNo)
' If the result is true, then delete the name.
If Result = vbYes Then xName.Delete
' Loop to the next name.
Next xName
End Sub
Note If your sheet names contain spaces, you may receive an error when
you attempt to delete the defined name.