Установка и снятие защиты книги



Защита на рабочую книгу от внесения в нее изменений устанавливается методом Protect, а снимается — методом Unprotect.

Protect(Password, Structure, Windows) Здесь:

r Password — необязательный параметр, задающий пароль для защиты книги. Если параметр опущен, то книга защищена без пароля;

r Structure — необязательный параметр, устанавливающий, защищена ли структура книги, т. е. взаимное расположение листов;

r Windows — необязательный параметр, определяющий защищены ли окна книги.

Защита с рабочей книги снимается методом Unprotect.

Unprotect(Password)

Здесь Password — необязательный параметр, указывающий пароль защиты.

В приводимом ниже коде из модуля рабочего листа обрабатывается событие BeforeRightciick объекта Worksheet (листинг 5.25). При щелчке правой кнопкой мыши на ячейке А1 устанавливается защита структуры и окон рабочей книги. Щелчок же правой кнопкой мыши на ячейке В1 снимает эту защиту.

Листинг 5.25. Установка и снятие защиты. Модуль рабочего листа

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, _

Cancel As Boolean)

If Target.Address = "$A$1" Then

Cancel = True

ThisWorkbook.Protect Password:="wow", Structure:=True, _

Windows:=True

End If

If Target.Address = "$B$1" Then

Cancel = True

ThisWorkbook.Unprotect Password:="wow"

End If

End Sub

Сохранение рабочей книги с именем, соответствующим текущей дате

Метод SaveAs объекта Workbook производит сохранение рабочей книги. Если необходимо, чтобы книга сохранилась так, чтобы ее именем была текущая дата, то можно воспользоваться кодом из листинга 5.26.

Листинг 5.26. Сохранение рабочей книги с именем, соответствующим  текущей дате

Sub SaveAsTodaysDate()

Dim FileName As String, Path As String

Path = "C:\"

FileName » Format(Now(), "mmddyy")

ActiveWorkbook.SaveAs Path & FileName

End Sub

События объекта Workbook

У объекта Workbook имеется большая коллекция событий, перечисленных в табл. 5.6. Они позволяют управлять процессом открытия книги, печатью, отслеживать любые изменения, произведенные в ней, и т. д.

Таблица 5.6. События объекта W orkbook

Событие Генерируется
Activate При активизации рабочей книги
Addinlnstall Когда рабочая книга инсталлируется как надстройка
AddinUninstall Когда рабочая книга удаляется как инсталлированная надстройка
BeforeClose Перед закрытием рабочей книги
BeforePrint Перед печатью
BeforeSave Перед сохранением рабочей книги

 


Таблица 5.6. События объекта W orkbook(Продолжение)

Deactivate При потере фокуса рабочей книгой
NewSheet При создании нового листа
Open При открытии рабочей книги
PivotTableCloseConnection При закрытии связи сводной таблицы с источником данных
PivotTableOpenConnection При установке связи сводной таблицы с источником данных
SheetActivate При активизации любого рабочего листа
SheetBeforeDoubleClick При двойном щелчке, но перед выполнением действий, назначенных по умолчанию двойному щелчку
SheetBeforeRightClick При щелчке правой кнопкой мыши, но перед выполнением действий, назначенных по умолчанию этому щелчку
SheetCalculate После завершения всех вычислений во всех рабочих листах и перерисовки диаграмм
SheetChange При изменении значения на любом листе в какой-либо ячейке
SheetDeactivate При потере листом фокуса
SheetFollowHyperlink При щелчке на гиперссылке
SheetPivotTableUpdate После обновления сводной таблицы
SheetSelectionChange При изменении выделения на любом листе
WindowActivate При активизации окна
WindowDeactivate При деактивизации окна
WindowResize При изменении размеров окна

Запрет закрытия рабочей книги

У процедуры обработки события BeforeClose объекта Workbook, генерируемого перед закрытием рабочей книги, имеется параметр Cancel. При значении True он блокирует закрытие книги. При значении False — закрытие разрешено. Например, следующий код (листинг 5.27) из модуля ЭтаКнига разрешает пользователю закрыть книгу только в случае, если в ячейку А1 введена строка "Go".

Листинг 5.27. Запрет закрытия рабочей книги. Модуль ЭтаКнига

Private Sub Workbook_BeforeClose(Cancel As Boolean)

If Range("A1").Value = "Go" Then

Cancel = False

Else

Cancel = True

End If

End Sub


Дата добавления: 2019-02-12; просмотров: 178; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!