回答編集履歴

5

追記

2019/06/03 06:54

投稿

mattuwan
mattuwan

スコア2136

test CHANGED
@@ -73,3 +73,7 @@
73
73
  ```
74
74
 
75
75
  あぁ、やってみてないけど、同じことがマクロなしでも、入力規則の機能でできるのでは?と思います。
76
+
77
+ マクロなしで出来るならマクロなしの方が、「元に戻す」がクリアされないので、
78
+
79
+ そちらの方がより良いかと思います。

4

追記

2019/06/03 06:54

投稿

mattuwan
mattuwan

スコア2136

test CHANGED
@@ -71,3 +71,5 @@
71
71
  End Sub
72
72
 
73
73
  ```
74
+
75
+ あぁ、やってみてないけど、同じことがマクロなしでも、入力規則の機能でできるのでは?と思います。

3

コードの追記

2019/06/03 06:51

投稿

mattuwan
mattuwan

スコア2136

test CHANGED
@@ -35,3 +35,39 @@
35
35
  参考>>
36
36
 
37
37
  [条件付き書式で変更された書式を取得する](https://excel-ubara.com/excelvba5/EXCELVBA263.html)
38
+
39
+
40
+
41
+ 追記>>
42
+
43
+ セルに入力した時にチェックするなら、色がどうのとか関係ないですよね?
44
+
45
+ ```ExcelVBA
46
+
47
+ Private Sub Worksheet_Change(ByVal Target As Range)
48
+
49
+ Dim rngEventArea As Range: Set rngEventArea = Me.Range("B4:D8")
50
+
51
+
52
+
53
+ If Target.CountLarge > 1 Then Exit Sub
54
+
55
+ Set Target = Intersect(Target, rngEventArea)
56
+
57
+ If Target Is Nothing Then Exit Sub
58
+
59
+ Set rngEventArea = Intersect(Target.EntireRow, rngEventArea)
60
+
61
+
62
+
63
+ If WorksheetFunction.CountIf(rngEventArea.Cells, Target.Value) > 1 Then
64
+
65
+ MsgBox "既に同じ値を入力済みです。", vbExclamation
66
+
67
+ Application.Undo
68
+
69
+ End If
70
+
71
+ End Sub
72
+
73
+ ```

2

修正

2019/06/03 06:48

投稿

mattuwan
mattuwan

スコア2136

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- For Each c In Range("B5:D8")
17
+ For Each c In Range("B4:D8")
18
18
 
19
19
  If c.DisplayFormat.Interior.Color = vbRed Then
20
20
 

1

修正

2019/06/02 08:32

投稿

mattuwan
mattuwan

スコア2136

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- For Each c In Range("B5:E8")
17
+ For Each c In Range("B5:D8")
18
18
 
19
19
  If c.DisplayFormat.Interior.Color = vbRed Then
20
20