Тодд разработал рабочую тетрадь, которую используют другие. Чтобы данные не испортились, он защитил как рабочий лист, так и книгу. Проблема в том, что Тодд иногда забывает защитить рабочий лист и книгу после внесения изменений. Ему интересно, есть ли способ создать визуальный индикатор, показывающий, защищен ли в настоящее время рабочий лист / книга или нет.

Конечно, самый простой способ проверить, не защищено ли что-то — просто взглянуть на инструменты на различных вкладках ленты. Если имеется полный набор инструментов, то рабочий лист и книга не защищены. Если значительное количество инструментов недоступно («выделено серым»), значит, защита включена.

Еще одно простое решение — создать определяемую пользователем функцию, которая возвращает значение, указывающее, защищена ли книга или рабочий лист. Следующее поможет:

Function WksProtected(rng As Range) As String     Application.Volatile     If rng.Parent.ProtectContents Then         WksProtected = "Protected"

Else         WksProtected = "Not Protected"

End If End Function
Function WkbProtected(rng As Range) As String     Application.Volatile     If rng.Parent.Parent.ProtectStructure Then         WkbProtected = "Protected"

Else         WkbProtected = "Not Protected"

End If End Function

Чтобы использовать макросы, просто включите формулы, подобные приведенным ниже, в любом месте рабочего листа:

=WksProtected(A1)

=WkbProtected(A1)

Результатом формулы является либо «Защищено», либо «Не защищено»,

в зависимости от состояния рабочих листов и рабочей книги. Вы можете использовать условное форматирование, чтобы выделить ячейки в зависимости от того, что возвращают функции.

Помните: значение из функций обновляется, только если рабочий лист пересчитывается. Если все, что вы делаете, — это защищаете (или снимаете защиту) рабочий лист, это не приводит к пересчету рабочего листа. Поэтому, чтобы увидеть правильные результаты после изменения статуса защиты, вам нужно обязательно пересчитать рабочий лист.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (9639) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Visually_Showing_a_Protection_Status [Визуальное отображение состояния защиты].