Принудительная повторная защита рабочего листа (Microsoft Excel)
Барри может заблокировать рабочий лист, чтобы редактировать его могли только те, кому он сообщает пароль. Если человек вводит пароль, вносит правки, а затем сохраняет книгу, содержащую рабочий лист, этот рабочий лист становится незащищенным. Барри задается вопросом, есть ли способ, чтобы при сохранении рабочего листа Excel мог напомнить пользователю еще раз защитить рабочий лист, используя тот же пароль, который использовался изначально.
Есть несколько способов решить эту проблему. Если вы назначили пароль для рабочего листа, вам просто нужно убедиться, что тот же пароль используется для повторной защиты рабочего листа при сохранении книги. Это легко сделать с помощью макроса, который можно привязать к событию BeforeSave. Этот макрос нужно добавить к объекту ThisWorkbook:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Sheets("ABC").Protect ("XYZ") End Sub
В этом примере предполагается, что рабочий лист, который вы хотите защитить, называется ABC, а пароль, используемый для защиты рабочего листа, — XYZ. Вы захотите изменить эти значения, чтобы они отражали ваш фактический рабочий лист и пароль.
Обратите внимание, что этот макрос автоматически повторно защищает лист при сохранении книги. Таким образом, если пользователь имеет длительный сеанс работы с листом и в течение этого сеанса много раз сохраняет книгу, то ему придется снимать защиту с листа довольно часто. При желании вы можете создать макрос, который спросит, нужно ли повторно защитить лист:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If MsgBox("Reprotect Sheet ABC?", vbYesNoCancel) = vbYes Then Sheets("ABC").Protect ("XYZ") End If End Sub
Конечно, этот подход означает, что рабочий лист не будет снова защищен, если пользователь решит не защищать его повторно.
Другой подход вообще не предполагает использования макросов, но использует другой способ защиты. При традиционной защите листа вы форматируете отдельные ячейки как разблокированные, а затем применяете защиту к листу, чтобы заблокированные ячейки нельзя было изменить.
Если вы не помечаете какие-либо ячейки как разблокированные (что похоже на то, что делает Барри), то ничего в таблице нельзя изменить без пароля.
Начиная с Excel 2002, вы действительно можете защитить отдельные диапазоны ячеек на листе. Выполните следующие действия:
-
Выберите «Защита» в меню «Инструменты», а затем выберите «Разрешить пользователям изменять диапазоны». Excel отображает диалоговое окно «Разрешить пользователям редактировать диапазоны».
(См. Рис. 1.)
-
Щелкните кнопку New. Excel отображает диалоговое окно «Новый диапазон». (См. Рис. 2.)
-
В поле Заголовок введите имя, которое вы хотите использовать для этого диапазона.
-
В поле «Ссылается на ячейки» введите диапазон, который пользователи могут редактировать. (Если вы хотите использовать один и тот же пароль для нескольких диапазонов, вы можете разделить эти диапазоны запятой.)
-
В поле Пароль диапазона введите пароль, который вы хотите дать своим пользователям.
-
Щелкните ОК. Вас снова просят ввести пароль.
-
Введите пароль, который вы использовали на шаге 5, второй раз. Теперь диапазон отображается в диалоговом окне «Разрешить пользователям изменять диапазоны».
-
Нажмите кнопку ОК, чтобы закрыть диалоговое окно «Разрешить пользователям изменять диапазоны».
-
Защитите свой рабочий лист, как обычно.
Когда вы защищаете свой лист (шаг 9), вам нужно помнить только одну вещь. Поскольку вы не разблокировали ни одной ячейки, все ячейки на листе будут защищены. Вы должны убедиться, что применяемая защита позволяет выбирать заблокированные ячейки. Если после защиты рабочего листа пользователь пытается отредактировать ячейку, которая находится в диапазоне, который вы указали на шаге 4, ему будет предложено ввести пароль, который вы указали на шаге 5. Когда они предоставят его, они могут внести изменения в любые ячейки В диапазоне.
В этом подходе замечательно то, что защита рабочего листа не удаляется — рабочий лист по-прежнему защищен, потому что пользователь никогда не снимал эту защиту. Таким образом, пользователю никогда не нужно знать пароль для всего рабочего листа. Когда пользователь закрывает и снова открывает книгу, лист по-прежнему защищен, как и вам нужно. Кроме того, у вас нет неизбежного недостатка макросов — они могут быть отключены пользователем при открытии книги.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (11972) применим к Microsoft Excel 97, 2000, 2002 и 2003.
Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:
link: / excelribbon-Forcing_a_Worksheet_to_be_Protected_Again [Принудительная повторная защита рабочего листа]
.