Построение обработчиков событий

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

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

Когда пользователь инициирует события, связанные с конкретным рабочим листом, то соответствующие сообщения посылаются как объектам верхнего уровня – Application и Workbook, так и самому объекту Worksheet. Конечно, этот объект получает значительно меньше сообщений, чем его "родители". В таб. 6.5.3 приведены основные события объекта Worksheet.

Таблица 6.5.3. События объекта Worksheet

Событие Появляется, когда пользователь или программа
Activate Активизирует рабочий лист
BeforeDoubleClick Дважды щелкает левой кнопкой мыши на одной из ячеек рабочего листа
BeforeRightClick Щелкает правой кнопкой мыши на ячейке рабочего листа
Calculate Выполняет действия, приведшие к перевычислению рабочего листа
Change Изменяет ячейку с формулой на рабочем листе
Deactivate Активизирует новый лист и тем самым деактивирует старый
SelectionChange Изменяет выделение

В отличие от объекта Worksheet, все события которого могут быть обработаны на верхнем уровне, объект Chart имеет специфические события, сообщения о которых направляются только ему одному. Встроенные диаграммы и листы диаграмм имеют одни и те же события. Разница состоит в том, что события встроенных диаграмм по умолчанию выключены, поэтому необходимо потрудиться, чтобы стало возможным их подключение и написание обработчиков событий. В таб. 6.5.4 приведены основные события объекта Chart.

Таблица 6.5.4. События объекта Chart

Событие Появляется, когда пользователь или программа
Activate Активизирует лист диаграмм. Естественно, его нет у встроенных диаграмм
BeforeDoubleClick Дважды щелкает левой кнопкой мыши на диаграмме
BeforeRightClick Щелкает правой кнопкой мыши на диаграмме
Calculate Добавляет или изменяет данные на диаграмме
SeriesChange Изменяет значение точки ряда данных
Deactivate Активизирует новый лист и тем самым деактивирует старый
DragOver Перемещает данные, располагая их поверх диаграммы
DragPlot Перемещает диапазон ячеек, располагая их поверх диаграммы
MouseDown Нажимает кнопку мыши при позиционировании ее над диаграммой
MouseMove Передвигает курсор мыши по диаграмме
MouseUp Завершает перемещение мыши и освобождает кнопку
Resize Изменяет размер диаграммы
Select Выделяет некоторый элемент диаграммы

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

Более сложно строятся обработчики событий для объекта Application и объектов Chart, задающих встроенные диаграммы. Методика построения обработчиков событий для объекта Application рассмотрена при изучении Word. Приведем краткую схему действий:

1. Вначале нужно создать класс (ClassModule), в котором следует объявить объекты типа Chart или Application с событиями (WithEvents).

2. Затем нужно написать инициализирующую процедуру, в которой объявить объект созданного класса – объект, уже имеющий события; после этого остается только связать этот объект со встроенной диаграммой или приложением.

3. Теперь объект появляется в окне проекта и далее применяется уже обычная схема создания обработчика.