События, связанные с объектом Sheet
Ряд событий, которые возникают в процессе работы со страницами той или иной рабочей книги, также могут быть обработаны на уровне объекта Application. Естественно, что эти события могут быть обработаны и на более низких уровнях - как на уровне объекта Workbook, так и на следующем уровне объектами, задающими саму страницу - Worksheet и Chart. Понятно, что на самом верхнем уровне задается обработка, общая для всех страниц всех книг, на следующем уровне обработка, общая для страниц конкретной книги, и на нижнем уровне - обработка, специфическая для данной страницы. В таблице 3.4 дана сводка событий, связанных с объектом Sheet, обрабатываемых на уровне объекта Application.
SheetActivate(Sh As Object) | Страница становится активной. | Вновь активированная страница передается обработчику события в качестве параметра. |
SheetBeforeDoubleClick(Sh As Object, Target As Range, Cancel As Boolean) | При двойном щелчке левой клавиши мыши на рабочей странице, но до того, как выполнится макрос, задающий реакцию на щелчок. Событие не возникает на Chart-страницах. | Первый параметр передает обработчику события объект Sh, задающий рабочую страницу, на которой был произведен двойной щелчок. Второй параметр Target возвращает ячейку (объект Range), ближайшую к указателю мыши в тот момент, когда был произведен щелчок. Если в обработчике события изменить значение параметра Cancel на True, то отменится выполнение макроса, задающего реакцию на двойной щелчок. |
SheetBeforeRightClick(Sh As Object, Target As Range, Cancel As Boolean) | Аналогично двойному щелчку, но при нажатии правой клавиши мыши. | Параметры сохраняют смысл, описанный для обработчика событий двойного щелчка. |
SheetCalculate(Sh As Object) | При перевычислениях рабочей страницы или при любых изменениях данных, отображаемых на диаграмме страницы диаграмм. | В зависимости от того, на странице какого типа произошло событие, параметр Sh представляет либо объект Workbook либо объект Chart. |
SheetChange(Sh As Object, Target As Range) | При изменениях в ячейках рабочей книги, инициированные пользователем или внешней ссылкой. Не возникает для Chart-страниц. | Параметр Sh задает объект WorkSheet - страницу, в ячейках которой произошли изменения. Параметр Target задает область изменения - объект Range. |
SheetDeactivate(Sh As Object) | Страница перестает быть активной, поскольку активной становится другая страница. | Деактивированная страница передается обработчику события в качестве параметра. |
SheetFollowHyperlink(Sh As Object, Target As Hyperlink) | При щелчке по гиперссылке на рабочей странице. Не возникает для Chart-страниц. | В качестве параметров обработчику события передаются два объекта, представляющие рабочую страницу и гиперссылку, задающую переход. |
SheetSelectionChange(Sh As Object, Target As Range) | При изменении области выделения рабочей страницы. Не возникает для Chart-страниц. | Параметр Sh задает объект WorkSheet -страницу, содержащую новую область выделения. Параметр Target задает новую область выделения - объект Range. |