- ベストアンサー
エクセルVBA/シートのチェンジイベントを発生させない方法?
Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "イベント発生" End Sub このワークシートがアクティヴになってるときに手入力された場合以外、チェンジイベントを発生させなくするにはどのような方法があるでしょうか? 標準モジュール記載の他のマクロでセルが変更された場合を無視したいのです。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>このシートがActiveじゃなかったらExit Subする If ActiveSheet.Name <> Me.Name Then Exit Sub こういう事でよいのでしょうか?
その他の回答 (2)
- KenKen_SP
- ベストアンサー率62% (785/1258)
回答No.3
こんな書き方もあります。 If Not ActiveSheet Is Me Then Exit Sub
質問者
お礼
ありがとうございます。 勉強になりました。
- masa_019
- ベストアンサー率61% (121/197)
回答No.1
標準モジュール記載の他のマクロの先頭に、 Application.EnableEvents = False とするとイベント発生を無効に出来ます。 End Sub の前に Application.EnableEvents = True で元に戻します。
質問者
お礼
早速ありがとうございます。 標準モジュールがわではなく、 Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "イベント発生" End Sub 側に書き入れて無効にする方法はないでしょうか? 例えば、このシートがActiveじゃなかったらExit Subするとかの方法です。 (Activeであれば他のマクロからの変更でもイベントを発生させます)
お礼
はい、これが知りたかったのです。 ありがとうございました。