- ベストアンサー
Sub Auto_Open() 実行されない
Excel2003VBAについて教えてください。 あるBookから、VBAの”Workbooks.Open”で別のブックを開くように作ってあるのですが、開かれるBookのほうに”Sub Auto_Open()”で特定のシートをアクティブにするように作っています。 普通にBookを開くとSub Auto_Open()は実行されますが、”Workbooks.Open”では実行されません。 ”Workbooks.Open”で開いたときに、特定のシートがアクティブになればそれでよいのですが。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
呼び出し元のブックではWorkbook_Openを使用しているのに、何故呼び出される側ではAuto_Openなのか? 呼び出される側もWorkbook_Openに Sheets("Sheet2").Select で良いと思うのですが。
その他の回答 (3)
- onlyrom
- ベストアンサー率59% (228/384)
>普通にBookを開くとSub Auto_Open()は実行されますが、”Workbooks.Open”では実行されません。 それは仕様です。 で、そういう処理をしたいときはふつうは Sub Auto_Open ではなくて ThiwWorkbookモジュールの、Workbook_Openイベントに書きます。 '--------------------------------- Private Sub Workbook_Open() Sheets("Sheet3").Select End Sub '---------------------------------- 以上。
お礼
お答えありがとうございました。 大変参考になり、助かりました。
- merlionXX
- ベストアンサー率48% (1930/4007)
Auto_Open は手動で開いた場合は実行されますがマクロで開く場合は実行されません。 他のファイルからマクロで開くときに Auto_Open を実行する場合は RunAutoMacros を使います。 サンプルです。 Sub test() Workbooks.Open "Test.xls" Workbooks("Test.xls").RunAutoMacros xlAutoOpen End Sub
お礼
お答えありがとうございました。 大変参考になりました。
- keirika
- ベストアンサー率42% (279/658)
アクティブにしたいシート名をSheet3とします。 Workbooks.Openの後にActiveWorkbook.Sheets("Sheet3").Activate を追加してはどうでしょうか。
お礼
お答えありがとうございました。 大変参考になり、助かりました。
お礼
お答えありがとうございます。 Workbook_Openを知りませんでした。 勉強不足です。大変参考になりました。