• ベストアンサー

Sub Auto_Open() 実行されない

Excel2003VBAについて教えてください。 あるBookから、VBAの”Workbooks.Open”で別のブックを開くように作ってあるのですが、開かれるBookのほうに”Sub Auto_Open()”で特定のシートをアクティブにするように作っています。 普通にBookを開くとSub Auto_Open()は実行されますが、”Workbooks.Open”では実行されません。 ”Workbooks.Open”で開いたときに、特定のシートがアクティブになればそれでよいのですが。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Masa2072
  • ベストアンサー率51% (94/182)
回答No.4

呼び出し元のブックではWorkbook_Openを使用しているのに、何故呼び出される側ではAuto_Openなのか? 呼び出される側もWorkbook_Openに Sheets("Sheet2").Select で良いと思うのですが。

coral_japan
質問者

お礼

お答えありがとうございます。 Workbook_Openを知りませんでした。 勉強不足です。大変参考になりました。

その他の回答 (3)

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.3

>普通にBookを開くとSub Auto_Open()は実行されますが、”Workbooks.Open”では実行されません。 それは仕様です。 で、そういう処理をしたいときはふつうは Sub Auto_Open ではなくて ThiwWorkbookモジュールの、Workbook_Openイベントに書きます。 '--------------------------------- Private Sub Workbook_Open()   Sheets("Sheet3").Select End Sub '---------------------------------- 以上。

coral_japan
質問者

お礼

お答えありがとうございました。 大変参考になり、助かりました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

Auto_Open は手動で開いた場合は実行されますがマクロで開く場合は実行されません。 他のファイルからマクロで開くときに Auto_Open を実行する場合は RunAutoMacros を使います。 サンプルです。     Sub test()     Workbooks.Open "Test.xls"     Workbooks("Test.xls").RunAutoMacros xlAutoOpen     End Sub

coral_japan
質問者

お礼

お答えありがとうございました。 大変参考になりました。

  • keirika
  • ベストアンサー率42% (279/658)
回答No.1

アクティブにしたいシート名をSheet3とします。 Workbooks.Openの後にActiveWorkbook.Sheets("Sheet3").Activate を追加してはどうでしょうか。

coral_japan
質問者

お礼

お答えありがとうございました。 大変参考になり、助かりました。

関連するQ&A

専門家に質問してみよう