Excelのこととか色々

Excel のこととか楽天とか いろいろ書いてみます・・・

【VBAスタンダードに挑戦!】IF (And)

【VBAスタンダードに挑戦!】

f:id:tuna-kichi:20200614200940p:plain

 

本日の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

f:id:tuna-kichi:20200804083451p:plain



 

                  

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 で書いてみますけど、

期待通りの動きにならないことが多いです。

 

なぜ???

条件の書き方が下手?

元のデータが変?

 

 

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/