Создание eventmacros для объекта Application с помощью VBA в Microsoft Excel
Запустите редактор Visual Basic.
Выберите желаемый проект в окне Project.
Вставьте новый модуль класса, выбрав меню Insert | Модуль класса.
Активируйте новый модуль класса и переименуйте его, например AppEventClass Скопируйте и вставьте эти примеры макросов в новый модуль класса:
Public WithEvents Appl As Application Private Sub Appl_NewWorkbook(ByVal Wb As Workbook) ' your code here MsgBox "A new workbook is created!" End Sub Private Sub Appl_WorkbookBeforeClose(ByVal Wb As Workbook, _ Cancel As Boolean) ' your code here MsgBox "A workbook is closed!" End Sub Private Sub Appl_WorkbookBeforePrint(ByVal Wb As Workbook, _ Cancel As Boolean) ' your code here MsgBox "A workbook is printed!" End Sub Private Sub Appl_WorkbookBeforeSave(ByVal Wb As Workbook, _ ByVal SaveAsUI As Boolean, Cancel As Boolean) ' your code here MsgBox "A workbook is saved!" End Sub Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook) ' your code here MsgBox "A workbook is opened!" End Sub
После того, как вы закончили редактировать макросы событий для объекта Application, вам необходимо добавить код в модуль ThisWorkbook, чтобы активировать новые макросы событий:
Dim ApplicationClass As New AppEventClass Private Sub Workbook_Open() Set ApplicationClass.Appl = Application End Sub
После запуска процедуры Workbook_Open активируются события, связанные с объектом Application.