作成者が意識しないところで、ExcelやAccessが拾ってくれるイベントがある。
Excelだと、各WorkBookと、ThisWorkbookにイベントがある。メニューバーとコードペイン(実際にVBAコードを記述するところ)の間に、コンボボックス(ドロップダウンリストともいうらしいが・・)が2つある。そのうちの左をGeneral)から変更すると、右側が既定のイベントになる。




WorkSheet/ThisWorkbookによって、表示されるイベントは異なるが、ありったけのイベントを出してみよう。そして、そのイベントに

Debug.Print [シート名] [イベント名]

というのを書いてみよう。

これを記述のうえ、シート上のイベントを実行すれば、いつ、どのイベントが、どういう順番で実行されるかが分かる。

解説するのもいいのだが、知りたい人はそれで調べてみるといいだろう。ただし、イミディエイトウィンドウを表示していることと、特にClose系はブレークポイントを埋めるなどしておく必要があるだろう。

サンプルはこちらの、ダウンロードを選択していただければ入手できる。