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

回答編集履歴

1

複数セルで実行できないようにする場合のコード追記

2020/08/11 09:50

投稿

TanakaHiroaki
TanakaHiroaki

スコア1065

answer CHANGED
@@ -8,4 +8,22 @@
8
8
  If Not Intersect(Target, Range("B1")) Is Nothing Then Call Proc_B
9
9
 
10
10
  End Sub
11
+ ```
12
+ **<追記 8/11 18:50>**
13
+  Worksheet_Change イベントは、複数セルの処理でハマることが予想されます。
14
+  YT0014さんから要求仕様があいまいとのご指摘があったことを踏まえ、複数プロシージャの同時実行を禁止する場合のコードを追記しました。
15
+
16
+ ```VBA
17
+ Private Sub Worksheet_Change(ByVal Target As Range)
18
+
19
+ '複数セルの処理追記
20
+ If Target.Count > 1 Then
21
+ MsgBox "複数プロシージャの同時実行を禁止します。"
22
+ Exit Sub
23
+ End If
24
+
25
+ If Not Intersect(Target, Range("A1")) Is Nothing Then Call Proc_A
26
+
27
+ If Not Intersect(Target, Range("B1")) Is Nothing Then Call Proc_B
28
+ End Sub
11
29
  ```