logo
Excel и его обьекты

1.5. События Application

Объект Excel.Application поддерживает множество событий. Работа с ними аналогична работе с событиями Word.Application, которыми мы занимались в соответствующем разделе предыдущей главы.

Рассмотрим основные шаги, которые необходимо произвести, чтобы работать с событиями приложения, перечислим события и приведем пример.

Создайте новый модуль класса. Добавьте в него объявление объекта типа Excel.Application с событиями

Public WithEvents obj_ExApp As Excel.Application

После этого в списке объектов редактора кода модуля появится объект obj_ExApp, а в списке событий - соответствующие ему события. Выберите нужное вам событие - автоматически будет создан обработчик для него. В частности, Excel.Application поддерживает следующие события:

После того, как создан обработчик, написан его код, работа еще не окончена. Следующий шаг - это связывание объекта obj_ExApp с реально работающим приложением. Ниже приведен полный код модуля с одним обработчиком события, а также - процедура, служащая для связывания объекта obj_ExApp с работающим приложением. Эта процедура может существовать в виде отдельного макроса или в виде кода обработчика нажатия на кнопку. Ее выполнение можно назначить событию открывающейся книги, которая содержит данный модуль класса и т.д.

Итак, вот код процедуры, который связывает объект созданного нами класса AppEvents с приложением:

Dim obj_ExcelAppEv As New AppEvents

Sub EventsInit()

Set obj_ExcelAppEv.obj_ExApp = Excel.Application

End Sub

А вот полный код модуля класса AppEvents с объявлением объектной переменной и обработчиком события.

Public WithEvents obj_ExApp As Excel.Application

Private Sub obj_ExApp_NewWorkbook(ByVal Wb As Workbook)

'Выполняется при создании новой книги

MsgBox "Вы создали новую книгу"

End Sub