Установка и снятие защиты рабочей книги
Как известно, защитить рабочую книгу от внесения в нее изменений и снять эту защиту можно с помощью соответствующих команд на вкладке Рецензирование в группе Изменения. Однако для этого можно также воспользоваться макросом, в котором содержатся следующие параметры: Password – для задания пароля, Structure – для защиты структуры книги (взаимного расположения рабочих листов) и Windows – для защиты окон книги (например, при использовании данного параметра будет невозможно свернуть или закрыть окно защищенной книги). Следует отметить, что все параметры являются необязательными.
Пример такого макроса приведен в листинге 2.4 (данный код должен быть помещен в модуль рабочего листа).
Листинг 2.4. Защита рабочей книги
Sub Worksheet_BeforeRightClick(ByVal Target As Range, _
Cancel As Boolean)
If Target.Address = «$D$2» Then
' Установка защиты рабочей книги (с паролем «123», _
включенной защитой структуры книги и защитой расположения _ окон)
ThisWorkbook.Protect «123», True, True
' Указание не обрабатывать нажатие кнопки мыши _ в этой
ячейке
Cancel = True
ElseIf Target.Address = «$E$5» Then
' Снятие защиты с книги (необходимо указать ранее установленный _ пароль)
ThisWorkbook.Unprotect «123»
Cancel = True
End If
End Sub
В данном примере включение защиты будет выполняться щелчком правой кнопки мыши на ячейке D2, а снятие защиты – щелчком правой кнопки на ячейке Е5.
При необходимости можно запретить вывод текущей рабочей книги на печать (при этом все остальные действия с рабочей книгой остаются доступными). Для этого достаточно записать небольшой макрос, код которого выглядит следующим образом (листинг 2.5; данный код следует поместить в модуль ЭтаКнига).
Листинг 2.5. Запрет печати книги
Sub Workbook_BeforePrint(Cancel As Boolean)
' Установка флага в True заставляет Exсel игнорировать команду _
отправки книги на печать
Cancel = True
End Sub
После выполнения данного макроса перестанут выполняться команды пункта Печать, расположенного в главном меню программы, которое вызывается нажатием Кнопки «Office».