プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (4件)

呼び出し元のブックではWorkbook_Openを使用しているのに、何故呼び出される側ではAuto_Openなのか?


呼び出される側もWorkbook_Openに
Sheets("Sheet2").Select
で良いと思うのですが。
    • good
    • 1
この回答へのお礼

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

お礼日時:2008/07/02 07:11

>普通にBookを開くとSub Auto_Open()は実行されますが、”Workbooks.Open”では実行されません。



それは仕様です。

で、そういう処理をしたいときはふつうは
Sub Auto_Open ではなくて
ThiwWorkbookモジュールの、Workbook_Openイベントに書きます。

'---------------------------------
Private Sub Workbook_Open()
  Sheets("Sheet3").Select
End Sub
'----------------------------------

以上。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/07/02 07:12

Auto_Open は手動で開いた場合は実行されますがマクロで開く場合は実行されません。


他のファイルからマクロで開くときに Auto_Open を実行する場合は RunAutoMacros を使います。
サンプルです。

    Sub test()
    Workbooks.Open "Test.xls"
    Workbooks("Test.xls").RunAutoMacros xlAutoOpen
    End Sub
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/07/02 07:12

アクティブにしたいシート名をSheet3とします。



Workbooks.Openの後にActiveWorkbook.Sheets("Sheet3").Activate

を追加してはどうでしょうか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/07/02 07:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A