The Document Inspector found hidden names in your workbook. These names can store hidden information about Solver scenarios. For example, when you use the Solver add-in to run a scenario, it may store information about calculation parameters and other sensitive data as hidden names in your workbook.

Important: 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 Document Inspector can't remove these hidden names for you.

Recommended solution

Run the following macro to remove hidden names. 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.

Note: If you use this macro to remove hidden names, add-ins (such as Solver) or macros may not work as expected and might lose hidden data associated with them. This macro also affects any defined name that's hidden, not only those that were added by Solver.

Caution: If your sheet names contain spaces, you may receive an error when you attempt to delete the defined name.

Remove Hidden Names

' 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"
               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, _

           ' If the result is true, then delete the name.
           If Result = vbYes Then xName.Delete

           ' Loop to the next name.
       Next xName

   End Sub

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

What affected your experience?

Thank you for your feedback!