Запустите редактор 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.