Установка и снятие защиты книги
Защита на рабочую книгу от внесения в нее изменений устанавливается методом 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!