Інспектор документів знайшов приховані імена в книзі. Ці імена можуть містити приховані відомості про сценарії надбудови "Пошук розв’язання". Наприклад, якщо ви запускаєте сценарій із використанням надбудови "Пошук розв’язання", вона може зберігати інформацію про параметри обчислення та інші конфіденційні дані, як-от приховані імена в книзі.
Увага!: Корпорація Майкрософт надає приклади програмування лише для ілюстрації без жодних гарантій, явних або неявних. Це стосується зокрема неявних гарантій щодо придатності до продажу чи придатності для певної мети.
У цій статті припускається, що ви знайомі з мовою програмування, яка демонструється, і з інструментами, які використовуються для створення і налагодження процедур. Спеціалісти служби підтримки Microsoft можуть допомогти пояснити функціональність певної процедури, але вони не змінюватимуть ці приклади, щоб надавати додаткові функції або конструювати процедури відповідно до ваших конкретних вимог.Проблема
Інспектор документів не може видалити ці приховані імена за вас.
Рекомендоване вирішення
Запустіть наведений нижче макрос, щоб видалити приховані імена. У макросі відображається вікно повідомлення з трьома елементами: (1), незалежно від того, чи відображається визначене ім'я, (2) визначене ім'я, і (3) те, на що посилається це ім'я (посилання на клітинку книги). Ви можете вибрати Так або Ні , щоб видалити або зберегти кожне визначене ім'я.
Примітка.: Якщо скористатися цим макросом, щоб видалити приховані імена, надбудови (як-от "Пошук розв’язання") або макроси можуть працювати неналежним чином і втратити пов’язані з ними приховані дані. Крім того, запуск цього макросу позначиться на всіх прихованих визначених іменах, а не лише на тих, які додано з використанням надбудови "Пошук розв’язання".
Увага!: Якщо імена аркушів містять пробіли, під час спроби видалити визначене ім'я може з'явитися повідомлення про помилку.
Видалення прихованих імен
' 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