• ベストアンサー

エクセルVBA/シートのチェンジイベントを発生させない方法?

Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "イベント発生" End Sub このワークシートがアクティヴになってるときに手入力された場合以外、チェンジイベントを発生させなくするにはどのような方法があるでしょうか? 標準モジュール記載の他のマクロでセルが変更された場合を無視したいのです。 よろしくお願いします。

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

  • ベストアンサー
  • masa_019
  • ベストアンサー率61% (121/197)
回答No.2

>このシートがActiveじゃなかったらExit Subする If ActiveSheet.Name <> Me.Name Then Exit Sub こういう事でよいのでしょうか?

merlionXX
質問者

お礼

はい、これが知りたかったのです。 ありがとうございました。

その他の回答 (2)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.3

こんな書き方もあります。 If Not ActiveSheet Is Me Then Exit Sub

merlionXX
質問者

お礼

ありがとうございます。 勉強になりました。

  • masa_019
  • ベストアンサー率61% (121/197)
回答No.1

標準モジュール記載の他のマクロの先頭に、 Application.EnableEvents = False とするとイベント発生を無効に出来ます。 End Sub の前に Application.EnableEvents = True で元に戻します。

merlionXX
質問者

お礼

早速ありがとうございます。 標準モジュールがわではなく、 Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "イベント発生" End Sub 側に書き入れて無効にする方法はないでしょうか? 例えば、このシートがActiveじゃなかったらExit Subするとかの方法です。 (Activeであれば他のマクロからの変更でもイベントを発生させます)