dポイントプレゼントキャンペーン実施中!

Excel VBA でイベント"Worksheet_Change"を使って,データの追加処理中に,イベントが連続発生してしまい,エラー発生となります。解決方法のヒントがありませんか?

1)イベント発生を一時的に受け付けない構文の "Application.EnableEvents = False" を処理ルーチンの先頭に入れています。

2)データテーブル表の特定処理「データを追加のため,"セル挿入"→"データ投入"」を行うとイベントの連続発生があるので,"セル挿入"と"データ投入"との間に "Application.Wait (Now() + TimeValue("00:00:01"))" を入れて,タイミングを遅らせていますが効果ありません。

A 回答 (2件)

Private Sub Worksheet_Change(ByVal Target As Range)



Static blnChangeCancel As Boolean

If blnChangeCancel Then Exit Sub

blnChangeCancel = True


'目的の処理.....




blnChangeCancel = False

End Sub
    • good
    • 0
この回答へのお礼

早速の回答,ありがとう御座います。
バルーンを使用する手は思いつきませんでした。

早速やってみます。
ありがとう御座いました。

また,ありましたら教授方よろしくお願い致します。

お礼日時:2010/07/20 12:23

今の段階では唐突で正確なところは分かりません。

Application.EnableEvents = False  これは、実行している段階で、再イベントを読み込まないためのものです。だから、そのままでは、それが有効になるのかどうかは分かりません。

おそらくは、Target で、何がイベントで拾っているのか調べて、それが不要である場合は、除外項目を設けなくてはならないのです。Wait は関係ありません。

>データテーブル表の特定処理「データを追加のため,"セル挿入"→"データ投入"」を行うとイベントの連続発生があるので,

ふつう、テーブルをSelect している時には、除外するとか、いくつか方法は考えますが、もう少し、具体的な情報がないと手が付けられないと思います。Static のBoolean 値を確保する方法では、Boolean値が解除されるまでは、1回だけマクロは可能です。果たしてそれでよいのなら、こちらの話は無視してくださってよいです。
    • good
    • 0
この回答へのお礼

どうもお手をわずわせて仕舞い,ありがとう御座いました。
回答前者の方の"Boolean 値を確定"で成功しました。
ご心配ありがとう御座います。
今後とも,よろしくお願いします。

お礼日時:2010/07/20 14:40

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