回答編集履歴

2

コードを修正しました

2018/09/19 03:39

投稿

h.horikoshi
h.horikoshi

スコア505

test CHANGED
@@ -52,22 +52,56 @@
52
52
 
53
53
  Dim ix As Long
54
54
 
55
+
56
+
57
+ ' ここから置き換え--------------------------------------------------
58
+
59
+ txt = ""
60
+
55
61
  For ix = 0 To UBound(adrs)
56
62
 
57
- If (Range(adrs(ix)) = "") Then Exit For
63
+ If (Me.Range(adrs(ix)) = "") Then txt = txt & "," & adrs(ix) ' アドレスを収集
58
64
 
59
65
  Next ix
60
66
 
61
- If (ix <= UBound(adrs)) Then
67
+ If (txt <> "") Then
62
68
 
63
- MsgBox ("未入力セルがあります")
69
+ '
64
70
 
65
- Range(クリ用).Interior.Color = RGB(255, 255, 255)
71
+ ' ドレスはtxtに収集されています
66
72
 
73
+ '
74
+
75
+ txt = Mid$(txt, 2) ' txt先頭の","を除去
76
+
77
+ MsgBox ("未入力セルがあります") & vbCrLf & "(""" & txt & "'')" ' メッセージ
78
+
67
- Range(txt).Interior.Color = RGB(255, 255, 153)
79
+ Range(クリア用).Interior.Color = RGB(255, 255, 255) ' 全クリア
80
+
81
+ Range(txt).Interior.Color = RGB(255, 255, 153) ' 空白セルだけ色をつける
68
82
 
69
83
  End If
70
84
 
85
+ ' ここまで --------------------------------------------------------
86
+
87
+
88
+
89
+ ' 旧コード --------------------------------------------------------
90
+
91
+ 'For ix = 0 To UBound(adrs)
92
+
93
+ ' If (Range(adrs(ix)) = "") Then Exit For
94
+
95
+ 'Next ix
96
+
97
+ 'If (ix <= UBound(adrs)) Then
98
+
99
+ ' MsgBox ("未入力セルがあります")
100
+
101
+ ' Range(クリア用).Interior.Color = RGB(255, 255, 255)
102
+
103
+ ' Range(txt).Interior.Color = RGB(255, 255, 153)
104
+
71
- コード
105
+ 'End If
72
106
 
73
107
  ```

1

jawaさんのご指摘により修正

2018/09/19 03:39

投稿

h.horikoshi
h.horikoshi

スコア505

test CHANGED
@@ -12,7 +12,21 @@
12
12
 
13
13
  Const 申請区分3用 As String = "D5,D6,D15,D16,E18,E19,D25,E35,D36"
14
14
 
15
+ '
16
+
17
+ ' jawaさんのご指摘により修正。
18
+
19
+ ' クリア用には色をつけるセル。つまりを申請区分1用~申請区分3用のセルをすべて
20
+
21
+ ' 含める必要があります。この際、漏れが発生しやすいため以下のとおり修正
22
+
23
+ '
24
+
25
+ ' Const クリア用 As String =
26
+
15
- Const クリア用 As String = "D3,D4,D5,D6,D9,D12,E22,F22,D25,D28,D11,D16,E34,F34,D36,D37,D15,E18,E19,E35,D36"
27
+ ' "D3,D4,D5,D6,D9,D12,E22,F22,D25,D28,D11,D16,E34,F34,D36,D37,D15,E18,E19,E35,D36"
28
+
29
+ Dim クリア用 As String: クリア用 = 申請区分1用 & "," & 申請区分2用 & "," & 申請区分3用
16
30
 
17
31
 
18
32