マクロが書かれているブックではないブック(エクセルファイル)のオープンやクローズをapplicationのイベントとして検出する。クローズはWorkbooks("hoge").Closeだけでなくて、ウィンドウ右上の×クリックによるクローズも検出できる。
VBEのクラスモジュールのメニューからmyEvent_****が他にもいろいろ選択可能。
クラスモジュール(名前をAppEventにした)
Option Explicit
Public WithEvents myEvent As Application
Private Sub myEvent_WorkbookOpen(ByVal Wb As Workbook)
' do_something
End Sub
Private Sub myEvent_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
' do_something
End Sub
ThisWorkbookモジュール
Option Explicit
Dim varEvent As New AppEvent '定義したクラスを変数として生成
Private Sub Workbook_Open()
Set varEvent.myEvent = Application
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Set varEvent = Nothing
End Sub