質問: falseで停止できないのですか? シート上のchangeイベントの停止はできましたが、ユーザーフォーム上のテキストボックス等のchangeイベントは停止できませんでした。 ユーザーフォームのchangeイベントを停止する方法があれば教えてください。
回答: こんにちは。 > application.enableevents = falseで停止できないのですか? できません。あくまで、application(excel)のイベントに対するモノであり、 ole オブジェクトであるフォームのイベントまでは制御できません。 > ユーザーフォームのchangeイベントを停止する方法があれば教えてください。 イベントの実行可否フラグを用意する方法があります。イベントの発生 自体は抑止できませんが、フラグが立っていなければイベント内の処理を キャンセルすることで事実上、イベントを抑止したことになります。 新規 userform に checkbox1 と textbox1 を配置して、下記ソースを 貼り付け、動作確認してみて下さい。 private fenableevents as boolean private sub userform_initialize() with me.checkbox1 .value = true .caption = "enable events" end with end sub private sub checkbox1_change() fenableevents = cbool(me.checkbox1.value) end sub private sub textbox1_change() if fenableevents then msgbox "raise change event." end if end sub