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

WorkSheet/ThisWorkbookによって、表示されるイベントは異なるが、ありったけのイベントを出してみよう。そして、そのイベントに
Debug.Print [シート名] [イベント名]
というのを書いてみよう。
これを記述のうえ、シート上のイベントを実行すれば、いつ、どのイベントが、どういう順番で実行されるかが分かる。
解説するのもいいのだが、知りたい人はそれで調べてみるといいだろう。ただし、イミディエイトウィンドウを表示していることと、特にClose系はブレークポイントを埋めるなどしておく必要があるだろう。
サンプルはこちらの、ダウンロードを選択していただければ入手できる。
Excelだと、各WorkBookと、ThisWorkbookにイベントがある。メニューバーとコードペイン(実際にVBAコードを記述するところ)の間に、コンボボックス(ドロップダウンリストともいうらしいが・・)が2つある。そのうちの左をGeneral)から変更すると、右側が既定のイベントになる。

WorkSheet/ThisWorkbookによって、表示されるイベントは異なるが、ありったけのイベントを出してみよう。そして、そのイベントに
Debug.Print [シート名] [イベント名]
というのを書いてみよう。
これを記述のうえ、シート上のイベントを実行すれば、いつ、どのイベントが、どういう順番で実行されるかが分かる。
解説するのもいいのだが、知りたい人はそれで調べてみるといいだろう。ただし、イミディエイトウィンドウを表示していることと、特にClose系はブレークポイントを埋めるなどしておく必要があるだろう。
サンプルはこちらの、ダウンロードを選択していただければ入手できる。