Шаг 51 - Изучаем события Excel Workbook
Открытие книги:
Private Sub Workbook_Open() End Sub
Активация окна. Вызывается в момент активации книги. Этот момент наступает в тот момент, когда из другой активной книги вы переходите к той, в которой обрабатывается событие. Например, при переключении книги в меню "Окно".
Private Sub Workbook_Activate() End Sub
Закрытие окна. Вызывается перед закрытием книги:
Private Sub Workbook_BeforeClose(Cancel As Boolean) End Sub
Деактивация книги. Вызывается в момент перехода к другой книге:
Private Sub Workbook_Deactivate() End Sub
Активация листа. Вызывается в момент смены листа:
Private Sub Workbook_SheetActivate(ByVal Sh As Object) End Sub
Деактивация листа. Вызывается в момент смены листа для того листа, с которого уходят:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) End Sub
Смена ячейки. Вызывается в момент смены диапазона или при редактировании ячейки:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range) End Sub
Пересчет данных. Вызываться при пересчете данных, обычно пересчет связан с редактирование данных, поэтому ранее вызывается SheetChange практически всегда за исключением ручного пересчета.
Private Sub Workbook_SheetCalculate(ByVal Sh As Object) End Sub
Переход к ячейке. Вызывается при переходе от одной ячейки к другой:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range) End Sub
Разрешение на печать. Вызывается при выборе меню "Печать":
Private Sub Workbook_BeforePrint(Cancel As Boolean) End Sub
Разрешение на сохранение. Вызываеться перед сохранением документа:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) End Sub
Создание нового листа. Вызывается в момент создания нового листа. Обычно ведет за собой целую цепочку событий - Workbook_NewSheet, Workbook_SheetDeactivate, Workbook_SheetActivate:
Private Sub Workbook_NewSheet(ByVal Sh As Object) End Sub
Изменение размера листа. Вызывается в момент изменения размера листа:
Private Sub Workbook_WindowResize(ByVal Wn As Excel.Window) End Sub
Активизация окна. Вызывается в момент активизации окна книги, например, при переключении на книгу:
Private Sub Workbook_WindowActivate(ByVal Wn As Excel.Window) End Sub
Щелчок правой кнопкой. Вызывается по нажатию правой кнопки мыши:
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Excel.Range, Cancel As Boolean) End Sub
Выводы. Часть событий связана в цепочки. То есть, например, событие Activate для одного объекта это событие Deactivate для другого объекта. Это работает для Окон, Книг и Листов. Часть событий вызывают за собой следующие события, например, ввод данных приведет к пересчету листа. Или вставка нового листа к событиям активизации. Знание событий может помочь в решении нетривиальных вопросов. Вот так можно запретить печать книги.
Private Sub Workbook_BeforePrint(Cancel As Boolean) Cancel = True End Sub
Предыдущий Шаг | Следующий Шаг
Автор Каев Артем.