
今回は、VBAのif文の使い方についてみていきましょう。
if文とは、プログラム上で条件によって処理を変更したい時に使用する文法です。
それでは早速例を見ていきましょう。
基本的なif文の使い方
まずは、一番基本となる使用方法を見ていきます。
If 条件 Then
処理
End If
例として、セル(1,1)に「1」が入力されている時にセル(1,2)に「値は1です」と表示するプログラムを作成しました。
If Cells(1, 1).Value = 1 Then
Cells(1, 2).Value = "値は1です"
End If
結果
値が1の時に、「値は1です」の文字が表示されたと思います。
「条件」の部分や「処理」の部分をやりたい処理に置き換えて利用してみましょう。
複数条件の使い方
複数条件の使い方についてみていきましょう。
複数条件を使うには、「Or」「And」を使用していきます。
Or条件
Or条件は、複数条件の内どれか1つでも満たしたときに処理を実行します。
値が「10」もしくは「100」の時、「値は10もしくは100です」を表示するプログラムを作成してみましょう。
Private Sub btnIf_Click()
'初期化
Cells(1, 2).Value = ""
'条件分岐 Or文
If Cells(1, 1) = 10 Or Cells(1, 1) = 100 Then
Cells(1, 2).Value = "値は10もしくは100です"
End If
End Sub
結果
And条件
And条件は、複数条件の内、全ての条件を満たしているときに処理を行います。
条件が「10以上」かつ「100未満」の場合、「10以上かつ100未満の値です」と表示するプログラムを作成してみましょう。
Private Sub btnIf_Click()
'初期化
Cells(1, 2).Value = ""
'条件分岐 And文
If Cells(1, 1).Value >= 10 And Cells(1, 1).Value < 100 Then
Cells(1, 2).Value = "10以上かつ100未満の値です"
End If
End Sub
結果
複数条件分岐
続いて、複数の条件分岐についてみてみましょう。
if文を何度も記載してもできるのですが、簡潔に書くことができるようになるので、押さえておきましょう。
ElseIf文
ElseIf文を使用することで複数の条件分岐を記載することができるようになります。
例として
①値が「1」のとき、「値は1です」と表示する。
②値が「10未満」のとき、「10未満の値です」と表示する
この条件を満たすプログラムを作成してみましょう。
Private Sub btnIf_Click()
'初期化
Cells(1, 2).Value = ""
'複数条件分岐 ElseIf
If Cells(1, 1).Value = 1 Then
Cells(1, 2).Value = "値は1です"
ElseIf Cells(1, 1).Value < 10 Then
Cells(1, 2).Value = "10未満の値です"
End If
End Sub
結果
「1」は10より小さい条件も満たしますが、先に1の時の条件に引っかかるので、「値は1です」が表示されています。
このようにElseIfがあればいくつでも条件分岐をすることが可能です。
Else文
Else文とは、If文やElse文の条件に当てはまらかったもの全てに対して処理を行います。
例として
①値が「1」のとき、「値は1です」と表示する。
②値が「10未満」のとき、「10未満の値です」と表示する
③上記以外の場合、「10以上の値です」と表示する
このような条件を満たすプログラムを記載してみましょう。
Private Sub btnIf_Click()
'初期化
Cells(1, 2).Value = ""
'複数条件分岐 ElseIf
If Cells(1, 1).Value = 1 Then
Cells(1, 2).Value = "値は1です"
ElseIf Cells(1, 1).Value < 10 Then
Cells(1, 2).Value = "10未満の値です"
Else
Cells(1, 2).Value = "10以上の値です"
End If
End Sub
結果
サンプルソース
①値が「1」のとき、「値は1です」と表示する。
②値が「10未満」のとき、「10未満の値です」と表示する
③値が「10」もしくは「100」のとき、「10もしくは100の値です」と表示する
④値が「10以上」かつ「100以下」のとき、「10以上かつ100未満の値です」と表示する
⑤上記以外の場合、「100以上の値です」と表示する
Private Sub btnIf_Click()
'初期化
Cells(1, 2).Value = ""
'複数条件分岐 ElseIf
If Cells(1, 1).Value = 1 Then
Cells(1, 2).Value = "値は1です"
ElseIf Cells(1, 1).Value < 10 Then
Cells(1, 2).Value = "10未満の値です"
ElseIf Cells(1, 1) = 10 Or Cells(1, 1) = 100 Then
Cells(1, 2).Value = "10もしくは100の値です"
ElseIf Cells(1, 1).Value >= 10 And Cells(1, 1).Value < 100 Then
Cells(1, 2).Value = "10以上かつ100未満の値です"
Else
Cells(1, 2).Value = "100以上の値です"
End If
End Sub
まとめ
If文を利用することで、プログラムの条件分岐をすることができます。
「If文」「ElseIf文」「Else文」「And条件」「Or条件」
この5つの使い方を抑えておくことで条件分岐を自在に行うことができますので、必ず押さえておきましょう。
プログラミングをする上でIf文は最も重要な文法の1つです。