【VBA備忘録】If文は難しくない!条件分岐マスター講座
If文ってなに…?
ExcelやVBAで最初にぶち当たる壁…それは「If文」と言っても過言ではないでしょう。
Excelだったら「=IF(○○ , ×× , □□)」、
VBAだったらIf「If ○○ Then ×× Else □□」、
「もしも○○だったら、××の処理。違ったら、□□の処理」という意味です。
条件によって処理を分岐するときにつかいます。
基本のIf文
Excelの場合
IF関数を使用します。
=IF(○○ , 処理1 , 処理2)
’もし○○なら処理1、○○でなかったら処理2

A列とB列が一緒だったら○、違ったら×をC列に表示したい場合は
=IF(A1=B1,"○","×")
C列に入力すると

2行目だけ違うため、×が表示されますね!
VBAの場合
If ○○ Then ’もし○○なら
処理1 ’処理1を実行
Else ’○○でなかったら
処理2 ’処理2を実行
End If
Alt+F11でVBAを開き、
プロジェクト→右クリック→挿入→標準モジュール

標準モジュールに以下のプログラムを書いていきます。
Sub どっちがすきなの()
For i = 1 To 3 '1~3行を順番にみていく
If Cells(i, 1) = Cells(i, 2) Then 'i行目A列の値とi行目B列の値が同じだったら
Cells(i, 3) = "○"
Else 'i行目A列の値とi行目B列の値が違ったら
Cells(i, 3) = "×"
End If
Next i
End Sub

C列に結果が表示されます。
If文に使う演算子
Excelの場合
使用する関数 | 文法 | 説明 |
---|---|---|
A=B | AはBと等しい | |
A<>B | AとBは等しくない | |
A<B | AよりBの方が大きい | |
A>B | AよりBの方が小さい | |
A<=B | Aより大きくB以下 | |
A>=B | Aより小さくB以上 | |
OR関数 | OR(Aの処理,Bの処理) | AかBのどちらかTrueまたはAとBのどちらもTrue |
AND関数 | AND(Aの処理,Bの処理) | AとBのどちらもTrue |
VBAの場合
演算子 | 説明 |
---|---|
A=B | AはBと等しい |
A<>B | AとBは等しくない |
A<B | AよりBの方が大きい |
A>B | AよりBの方が小さい |
A<=B | Aより大きくB以下 |
A>=B | Aより小さくB以上 |
AorB | AかBのどちらかTrueまたはAとBのどちらもTrue |
AandB | AとBのどちらもTrue |