Excelのこととか色々

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

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

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

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

 

本日の5分勉強の内容

 

 

********************************************************

IF ステートメント

・〇 か X のどちらか判定する(二択)

・「Or」「And」を使って複数条件を設定できる

If 条件 Then
 処理
End If

                  

Orの記述方法

Sub 休日セル色付け()

 Dim r As Long  '行を表すのに使う
 Dim c As Long  '列を表すのに使う
 Dim 
LastR As Long '最終行を格納するのに使う

 c = Selection.Column  '列番号を格納する
 LastR = Cells(Rows.Count, c).End(xlUp).Row '最終行を取得

 For r = 2 to LastR  '2行目から最終行まで 
  If Cells(r, c) = "Sun" Or Cells(r, c) = "Sat" Then 'セルが Sun か Sat のとき・・・
   Cells(r, c).Interior.Color = RGB(255, 204, 255) 'セルをピンク色に塗りつぶす
  End If
 Next r

End Sub

 

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

条件に合わない、「Mon」「Tue」などは無視されます。

                  

Orを使わないで上記と同じ結果となる書き方

Sub 休日セル色付け()

 Dim r As Long  '行を表すのに使う
 Dim c As Long  '列を表すのに使う
 Dim 
LastR As Long '最終行を格納するのに使う

 c = Selection.Column  '列番号を格納する
 LastR = Cells(Rows.Count, c).End(xlUp).Row '最終行を取得

 For r = 2 to LastR  '2行目から最終行まで 
  If Cells(r, c) = "Sun"  Then 'セルが Sun  のとき・・・
   Cells(r, c).Interior.Color = RGB(255, 204, 255) 'セルをピンク色に塗りつぶす

  End If

  If Cells(r, c) = "Sat" Then 'セルが Sat のとき・・・
   Cells(r, c).Interior.Color = RGB(255, 204, 255) 'セルをピンク色に塗りつぶす
  End If
 Next r

End Sub

「Or」を使わない場合は、条件が1つの If 文を、2つ記述すればよい

********************************************************

 

「If」は良く使います。

でも、Or, And は使いません。

というか、うまく使いこなせません・・・

 

上記のサンプルコードの場合は、うまく動くのですが、

もう少し複雑な条件に使用すると失敗することが多く、

一度で成功することは、ほぼありません・・・

 

なので、Select 文で書けないときは、ひと苦労です。

何がいけないんだろう・・・

 

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