teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

データの追記、修正

2021/01/29 05:03

投稿

退会済みユーザー
answer CHANGED
@@ -1,10 +1,4 @@
1
- サンプルプログラムを動かした際に下記の操作を行うと二度判定が行われることを確認しました。
2
-
3
- 1.N10に塗りつぶしでvbRedにする。(判定無し)
4
- 2.N10セルを右クリックで削除する。(判定無し)
5
- 3.Ctrl+Zで巻き戻しを行う(二度判定が行われる)
6
-
7
- 手動で値変更し場合には正常に1回判定されておりif文などに問題はなさそうでした。
1
+ 上記サンプルコード動作させ所、正常に1回のみ判定されておりif文などに問題はなさそうでした。
8
- 上記の操作を行った場合はWorksheet_Changeイベントが二度走っているので、関数でも何らかの形で反応していると思います。
9
2
  Worksheet_Changeイベントは同Worksheet内で値が変更される(VBAプログラムを含む)度に走るのでその影響も考慮する必要がありそうです。
10
- Application.EnableEvents = Falseで連鎖は止められますがどのタイミングでtrueに戻すかという問題もあるので私はすぐに答えられそうにありません
3
+ Application.EnableEvents = Falseで連鎖は止められますがどのタイミングでtrueに戻すかという問題もありま
4
+ Worksheet_Changeイベントが反応しているタイミングを調査して対処した方が良いかもしれません。

1

追記

2021/01/29 05:03

投稿

退会済みユーザー
answer CHANGED
@@ -6,4 +6,5 @@
6
6
 
7
7
  手動で値を変更した場合には正常に1回で判定されており、if文などに問題はなさそうでした。
8
8
  上記の操作を行った場合はWorksheet_Changeイベントが二度走っているので、関数でも何らかの形で反応していると思います。
9
+ Worksheet_Changeイベントは同Worksheet内で値が変更される(VBAプログラムを含む)度に走るのでその影響も考慮する必要がありそうです。
9
- Application.EnableEvents = Falseで連鎖は止められますがどのタイミングでtrueに戻すかなどの問題もあるので私はすぐに答えられそうにありません。
10
+ Application.EnableEvents = Falseで連鎖は止められますがどのタイミングでtrueに戻すかという問題もあるので私はすぐに答えられそうにありません。