| 
    
     |  | 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
 
 レンジの設定の仕方がおかしいのでしょうか・・・。
 
 どうぞよろしくご教示お願いいたします。
 
 |  |