【VBAスタンダードに挑戦!】
本日の5分勉強の内容
********************************************************
IF ステートメント
・〇 か X のどちらか判定する(二択)
・「Or」「And」を使って複数条件を設定できる
If 条件 Then
処理
End If
Andの記述方法
Sub あんど()
Dim r As Long '行を表すのに使う
Dim c As Long '列を表すのに使う
Dim LastR As Long '最終行を格納する
'あらかじめチェックする列の先頭を選択しておく
r = Selection.Row '選択したセルの行
c = Selection.Column '選択したセルの列
LastR = Cells(Rows.Count, c).End(xlUp).Row '最終行を取得
For r = r To LastR
'セルが B で、右隣のセルが Jacket の場合・・・
If Cells(r, c) = "B" And Cells(r, c + 1) = "Jacket" Then
Cells(r, c).Interior.Color = RGB(255, 255, 0) '背景色を黄色にする
End If
Next r
End Sub
Andを使わないで上記と同じ結果となる書き方
Sub あんど()
Dim r As Long '行を表すのに使う
Dim c As Long '列を表すのに使う
Dim LastR As Long '最終行を格納する
'あらかじめチェックする列の先頭を選択しておく
r = Selection.Row '選択したセルの行
c = Selection.Column '選択したセルの列
LastR = Cells(Rows.Count, c).End(xlUp).Row '最終行を取得
For r = r To LastR
If Cells(r, c) = "B" Then 'セルが B で・・・
If Cells(r, c + 1) = "Jacket" Then '右隣のセルが Jacket の場合
Cells(r, c).Interior.Color = RGB(255, 255, 0) '背景色を黄色にする
End If
End If
Next r
End Sub
「And」を使わない場合は、条件が1つの If 文を、入れ子にして記述すればよい
※If AAA And BBB Or CCC And DDD Then
のように無理に一文で記述する必要はない
可読性も考慮して記述する
********************************************************
And を使った If 文はあまり書きません。
というか、期待通りの動きをしてくれません・・・
なので、いつも入れ子にして書いています。
一応最初は And で書いてみますけど、
期待通りの動きにならないことが多いです。
なぜ???
条件の書き方が下手?
元のデータが変?
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/