Построение обработчиков событий
События объекта 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. Теперь объект появляется в окне проекта и далее применяется уже обычная схема создания обработчика.