Вы можете использовать надстройку.
Создайте надстройку со следующим кодом в модуле ThisWorkbook
:
Private WithEvents app As Application
' This will run when any workbook is opened.
Private Sub app_WorkbookOpen(ByVal Wb As Workbook)
' Check if this add-in is opening versus any other workbook.
If Not Wb Is Me Then
' Another workbook is opening - do something...
MsgBox Wb.Name
End If
End Sub
' This will run when the add-in workbook is opened.
Private Sub Workbook_Open()
' Set the app variable so that we can listen for WorkbookOpen event
Set app = Application
End Sub
Сохраните это как надстройку впапку надстройки (обычно C: \ Users \\ AppData \ Roaming \ Microsoft | AddIns), выбрав Файл -> Сохранить как и выбрав тип файла надстройки Excel (* .xlam).
Затемв меню «Файл» -> «Параметры» -> «Надстройки» выберите «Управление надстройками Excel» и нажмите «Перейти». Появится список надстроек для автоматического запуска.Отметьте надстройку, которую вы только что создали.
Теперь, когда вы откроете любую книгу, будет запущен код надстройки.