【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=BAはBと等しい
A<>BAとBは等しくない
A<BAよりBの方が大きい
A>BAよりBの方が小さい
A<=BAより大きくB以下
A>=BAより小さくB以上
OR関数OR(Aの処理,Bの処理)AかBのどちらかTrueまたはAとBのどちらもTrue
AND関数AND(Aの処理,Bの処理)AとBのどちらもTrue

VBAの場合

演算子説明
A=BAはBと等しい
A<>BAとBは等しくない
A<BAよりBの方が大きい
A>BAよりBの方が小さい
A<=BAより大きくB以下
A>=BAより小さくB以上
AorBAかBのどちらかTrueまたはAとBのどちらもTrue
AandBAとBのどちらもTrue

VBA,白猫

Posted by shironecoworks