はじめに
今回は、イベントを発生させないようにする方法を解説します。
Excel VBAを記述するうえで、イベントを発生させたくない場合もあるかと思います。
基本構文からサンプルコードまで詳細に解説いたします。
この記事を読むメリット
- イベントを発生させないようにする方法が分かります。
- 基本構文から設定値まで詳しく解説します。
- コピペで使える実践的なサンプルコードを掲載しています。
基本情報
EnableEventsプロパティ
イベントを発生させないようにするには、ApplicationオブジェクトのEnableEventsプロパティを使用します。
EnableEventsプロパティには、Boolean型を指定します。
Trueの場合は「通常通りイベントを発生」させ、Falseの場合は「イベントの発生を抑止」することが出来ます。
構文
構文
Application.EnableEvents = 設定値
設定値
Boolean型を指定します。
設定値と、その効果を以下に示します。
設定値
- True:イベントを発生させる
- False:イベントの発生を抑止する
サンプルコード
一時的にイベントを発生させないようにする
サンプルコード
Private Sub Worksheet_Change(ByVal Target As Range)
If IsNumeric(Target.Value) And Target.Value > 1 Then
' 変更されたセルが 数値型 かつ 1より大きい場合
' イベントを抑止
Application.EnableEvents = False
Target.Value = 1
' イベントの抑止解除
Application.EnableEvents = True
End If
End Sub
イベントを抑止していない場合は、10行目にて値を書き換えた時点でイベントが発生したうえ、再度「Worksheet_Change」イベントが発生して無駄な処理が発生します。
最後に
今回は、イベントを発生させないようにする方法を解説しました。
サンプルコードに掲載した通り、不要なイベントについては抑止する方がパフォーマンスとしても良いでしょう。
本記事が皆さんのお力になれば幸いです!
コメント