Excelの自動実行マクロ
ブックを開いたときに自動実行されるマクロ(もちろん、有効化しなきゃならんが)には二つあって
・Sub Auto_Open()というシグニチャのプロシージャ
・ThisWorkbookのOpenイベントハンドラ(つまりまあPrivate Sub Workbook_Open()だ)
こいつら何が違うかというと、
・シェルやExcelのメニューから手動で開いたときは、Openイベントハンドラ→Auto_Open()の順に実行。
・Workbooks.Openで開くとき、Openイベントハンドラは実行されるが、Auto_Open()は勝手には動かない。
(動かしたければ、OpenしたWorkbookオブジェクトのRunAutoMacros()を別途呼ぶ。)
・さらにApplication.EnableEventsプロパティをFalseにしておくと(Openイベントがスルーされるので)Openイベントハンドラも実行されない。
といった違いがあるらしい。
ちなみにこの辺を回避するには、メニューから開くときにShift押しっぱなしにしとけばスルーされる。
(マクロ実行の可否を選ぶようになってる場合は、実行許可出した直後からShift押しかな?)