1つのシートモジュールに複数の Change イベントプロシージャをば

1つのシートモジュールに書ける Change イベントプロシージャは1つ…
とは限りません。
実は、いくつでも書けます。
 
やり方は単純で、Sheet1 モジュールに

Public WithEvents sht1 As Worksheet

Private Sub Worksheet_Change(ByVal Target As Range)
  MsgBox "元祖" & vbCrLf & Target.Address
End Sub

Private Sub sht1_Change(ByVal Target As Range)
  MsgBox "2号" & vbCrLf & Target.Address
End Sub

Thisworkbook モジュールに

Private Sub Workbook_Open()
  Set Sheet1.sht1 = Sheet1
End Sub

と書いておくだけです。
 
実用性はまったくありません。
こんなことするくらいなら、普通にプロシージャを分けて、Call で呼び出すようにした方がいいです。
 
余談ですが、'元祖'よりも'2号'の方が先に実行されるようです。
# Excel2007 で試しています。
 
※.Excel World の 2008年3月16日 22:40 の日記をコピーしています。
http://excel.sns.fc2.com/excel/