回答編集履歴
2
コード修正
answer
CHANGED
@@ -2,15 +2,22 @@
|
|
2
2
|
|
3
3
|
`Target.Cells.Count`で更新されたセルの数が取得できるので、これが1の時だけ処理をするようにすればいいでしょう。
|
4
4
|
|
5
|
+
> 実際のコードはもっと列があり、それぞれの列に色々な条件で動く処理が書かれている
|
6
|
+
|
5
7
|
```vba
|
6
8
|
Private Sub Worksheet_Change(ByVal Target As Range)
|
7
|
-
If Target.Cells.Count = 1 Then '単一セルの
|
9
|
+
If Target.Cells.Count = 1 Then '単一セルの更新
|
8
|
-
|
10
|
+
Select Case Target.Column
|
11
|
+
Case 1
|
9
|
-
|
12
|
+
MsgBox "更新された列:" & Target.Column & " 更新値:" & Target.Value
|
10
13
|
|
11
|
-
|
14
|
+
Case 2
|
12
|
-
|
15
|
+
MsgBox "更新された列:" & Target.Column & " 更新値:" & Target.Value
|
16
|
+
|
17
|
+
Case 3
|
18
|
+
MsgBox "更新された列:" & Target.Column & " 更新値:" & Target.Value
|
19
|
+
|
13
|
-
|
20
|
+
End If
|
14
21
|
End If
|
15
22
|
End Sub
|
16
23
|
```
|
1
コード修正
answer
CHANGED
@@ -4,10 +4,13 @@
|
|
4
4
|
|
5
5
|
```vba
|
6
6
|
Private Sub Worksheet_Change(ByVal Target As Range)
|
7
|
-
If Target.Cells.Count = 1 Then
|
7
|
+
If Target.Cells.Count = 1 Then '単一セルのみ更新
|
8
|
+
If Not Intersect(Target, Range("A:A,B:B")) Is Nothing Then '更新セルはA列またはB列
|
9
|
+
Msgbox "更新された値:" & Target.Value
|
8
10
|
|
9
|
-
|
11
|
+
'実行したい処理
|
12
|
+
|
10
|
-
|
13
|
+
End If
|
11
14
|
End If
|
12
15
|
End Sub
|
13
16
|
```
|