VBAの条件を指定し、その条件だった場合(そうでなかった場合)の処理について
「if」を用いた条件式を紹介していきます。
こちらの表内の「購入者の年齢」欄に、「20以上」の数字を入れると
「購入可否」欄に「購入可」、「19以下」の数字を入れると「購入不可」
と出力させます。
実際の構文はこちらとなります。
If Range("B3").Value >= 20 Then
Range("C3").Value = "購入可"
まず、「B3」のセルに入れる数字が「>=」の場合、
「C3」セルで「購入可」と出力されるように設定します。
このような「>」や「=」を比較演算子といいます。
・比較演算子の種類
[1] =:等しい
[2] <>:等しくない
[3] <:より小さい
[4] <=:以下
[5] >:より大きい
[6] =>:以上
[7] Like:文字列のあいまい検索
[8] Is:オブジェクトの変数
となっています。
つまり、「>=」は「20より大きい」、「20と等しい」場合に
「C3」に「購入可」が出力されます。
Else
Range("C3").Value = "購入不可"
End If
「else」以降は「そうでなかった場合」の処理となります。
つまり入力された文字が「19以下」の処理は、「C3」に「購入不可」と
出力されます。
If Range("B4").Value >= 20 Then
Range("C4").Value = "購入可"
Else
Range("C4").Value = "購入不可"
End If
同様に「B4」で入力された値に応じて「C4」に「購入可」「購入不可」を
表示させる処理を実行します。
また、条件分岐させた際の処理について複数記載することも可能です。
例えば、
Range("△▼").Interior.Color = vbRed or vbGreen
を入れた場合、条件によってセルの背景色を緑または赤に変更することが可能です。
(.Interior.Color で背景色の変更)
今回の紹介では20以上を背景色「緑」
19以下を背景色「赤」に設定します。
対象の表に「30」と「7」を入れてマクロを実行します。
「30」を入力した隣のセルは「購入可」となり緑色に
「7」を代入した隣のセルは「購入不可」となり赤色に
変化することが確認できました。
また「~でない場合」に焦点を当てる場合
[1] If Not Range("B3").Value = "東京都" Then
[2] If Range("B3").Value <> "東京都" Then
の2パターンがあります。(どちらも意味は同じです。)
ご覧いただき、ありがとうございました。
■参考元
https://www.fastclassinfo.com/entry/excel_vba_if