• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA でイベント"Worksheet_Change"を使)

Excel VBAでデータの追加処理中にイベントが連続発生してしまうエラーの解決方法

このQ&Aのポイント
  • Excel VBAを使ってデータの追加処理を行っている時に、イベントが連続発生してしまいエラーが発生します。解決方法として、処理ルーチンの先頭に「Application.EnableEvents = False」という構文を入れることで、一時的にイベント発生を受け付けなくすることができます。
  • また、特定の処理である「セル挿入」と「データ投入」の間に「Application.Wait(Now() + TimeValue('00:00:01'))」を入れることで、タイミングを遅らせる方法もありますが、効果は限定的です。
  • この問題の解決には他にも様々な方法が存在しますが、詳細は不明です。

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

  • ベストアンサー
  • mino1219
  • ベストアンサー率66% (2/3)
回答No.1

Private Sub Worksheet_Change(ByVal Target As Range) Static blnChangeCancel As Boolean If blnChangeCancel Then Exit Sub blnChangeCancel = True '目的の処理..... blnChangeCancel = False End Sub

createtim
質問者

お礼

早速の回答,ありがとう御座います。 バルーンを使用する手は思いつきませんでした。 早速やってみます。 ありがとう御座いました。 また,ありましたら教授方よろしくお願い致します。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

今の段階では唐突で正確なところは分かりません。Application.EnableEvents = False  これは、実行している段階で、再イベントを読み込まないためのものです。だから、そのままでは、それが有効になるのかどうかは分かりません。 おそらくは、Target で、何がイベントで拾っているのか調べて、それが不要である場合は、除外項目を設けなくてはならないのです。Wait は関係ありません。 >データテーブル表の特定処理「データを追加のため,"セル挿入"→"データ投入"」を行うとイベントの連続発生があるので, ふつう、テーブルをSelect している時には、除外するとか、いくつか方法は考えますが、もう少し、具体的な情報がないと手が付けられないと思います。Static のBoolean 値を確保する方法では、Boolean値が解除されるまでは、1回だけマクロは可能です。果たしてそれでよいのなら、こちらの話は無視してくださってよいです。

createtim
質問者

お礼

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