|
windows7 エクセル2007使用です
複数のrangeに対して、条件を満たす場合に、
処理を実行するというコードを作成しました。
A列に入力漏れがある場合、関数を使ってX列に警告文を表示させています。
X列に警告文が表示されている場合は、
MsgBoxで、"入力してください"と表示させるためのマクロを組みました。
Sub 入力漏れチェック()
Dim i As Range
For Each i In Worksheets("A").Range("X8:X13")
If i.Value <> "" Then
MsgBox "番号を入力してください"
Exit Sub
Else
処理1
End If
Next i
End Sub
上のコードでは、たとえば、X13に警告が表示されている場合、
ちゃんとMsgBoxが表示され、番号入力をすることができます。
そして、処理1は実行されません。
ところが、以下のように複数のレンジを指定すると、
MsgBoxの表示もなく、処理1が実行されてしまいます。
Dim i As Range
For Each i In Worksheets("A").Range("X8:X13", "X32:X37")
If i.Value <> "" Then
MsgBox "番号を入力してください"
Exit Sub
Else
処理1
End If
Next i
End Sub
レンジの設定の仕方がおかしいのでしょうか・・・。
どうぞよろしくご教示お願いいたします。
|
|