• ベストアンサー

EXCELでワークシートを開いたらマクロを自動実行したい

いつもお世話になります。 EXCEL2000を使用しています。 EXCELファイルの中のあるワークシートを開いたときにマクロを自動実行することはできますか? AUTO_OPENだとファイルを開くたびに自動実行されるので、特定のワークシートを開いたときだけマクロを自動実行できるようにしたいのです。 よろしくお願いします。

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.2

Worksheet_Activateイベントに記述した場合は、ブックを開いたときに、 このシートがアクティブになっていた場合は、イベントが発生しません。 もし、ブックを開いたとき、目的のシートがアクティブな状態で開かれた時も マクロを実行したいのであれば、ThisWookbookクラスの Open と SheetActivate イベントを使って、例えば、次のような感じで如何でしょうか。 ("Sheet2"の場合です。) Private Sub Workbook_Open()   If ActiveSheet.Name = "Sheet2" Then Sheet2_Open_Macro End Sub Private Sub Workbook_SheetActivate(ByVal Sh As Object)   If Sh.Name = "Sheet2" Then Sheet2_Open_Macro End Sub Sub Sheet2_Open_Macro()   MsgBox "Sheet2がアクティブになっています。"   'ここに処理したいコードを記述します。 End Sub

haasan99
質問者

お礼

お礼が遅くなってすみません。 思い通りにできました。 ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

「考えているBookの」「そのワークシートの」イベントに、処理を書けば良いのではないですか。 Private Sub Worksheet_Activate() If ActiveSheet.Name = "Sheet1" Then MsgBox "sss" '処理 End If End Sub

haasan99
質問者

お礼

お礼が遅くなってすみません。 ようやくできました。 ありがとうございました。

関連するQ&A