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

いつもお世話になります。
EXCEL2000を使用しています。

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

A 回答 (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
    • good
    • 3
この回答へのお礼

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

お礼日時:2003/12/26 12:35

「考えているBookの」「そのワークシートの」イベントに、処理を書けば良いのではないですか。


Private Sub Worksheet_Activate()
If ActiveSheet.Name = "Sheet1" Then
MsgBox "sss" '処理
End If
End Sub
    • good
    • 2
この回答へのお礼

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

お礼日時:2003/12/26 12:34

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

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


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