こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel VBA セルの双方向同期のエラーについ

エラーが発生して理由がわからないので、どなたか助言をお願いします。
以下のVBAにて、目的のセルにデータを入力すると、1回目は必ず添付写真の通りのエラーが出まして、デバッグをすると3行目が黄色でハイライトされます。
記述は以下の通りです。どうぞよろしくお願いします。

シートAへのVBA設定
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Sheets("シートB").Range("$B$1").Value = Sheets("シートA").Range("$A$1").Value
End If
End Sub

シートBへのVBA設定
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then
Sheets("シートA").Range("$A$1").Value = Sheets("シートB").Range("$B$1").Value
End If
End Sub

投稿日時 - 2018-04-13 14:29:52

QNo.9488157

困ってます

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

入力したセルの値を書き換えると、その時点でイベントが発生してしまい無限ループに入ってしまいます。
セルの変更前に、の頭に、
  Application.EnableEvents = False
を入れれば解決します。
だたし、プログラムを抜ける前に必ず、
  Application.EnableEvents = True
を入れましょう。

Worksheet_Changeでググれば解決策が出てきます。

参考URL:http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_event.html

投稿日時 - 2018-04-13 16:50:55

お礼

ありがとうございました!解決できました!

投稿日時 - 2018-04-14 14:23:58

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

一見したところ、ぐるぐる回りを起こす論理ではないですか。
関数の循環参照のような。
シートのChangegイベントを安易に使うと、おそしいから、初心者は使うべきでないと常々感じている。

投稿日時 - 2018-04-13 16:05:05

あなたにオススメの質問