EXCEL VBAメモ - 他のブックのオープン・クローズの検出(Applicationイベント)
マクロが書かれているブックではないブック(エクセルファイル)のオープンやクローズを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