VBA(Visual Basic for Applications)では、特定の条件に応じて処理を分岐させるためにIf文を使用します。If文を適切に使うことで、より柔軟なプログラムを作成できます。本記事では、If文の基本的な使い方や構文について解説します。
目次
1. If文とは?
If文は、「もし○○ならば△△を実行する」という条件分岐を行うための構文です。
たとえば、「あるセルの値が100以上ならメッセージを表示する」といった処理を実装できます。
2. If文の基本構文
VBAのIf文には、いくつかの書き方があります。まずは基本の構文を見てみましょう。
(1) 単純なIf文
If 条件 Then
'条件がTrueのときに実行する処理
End If
例:セルA1の値が100以上ならメッセージを表示
Sub SampleIf()
If Range("A1").Value >= 100 Then
MsgBox "A1の値は100以上です"
End If
End Sub
(2) If~Else文
If 条件 Then
'条件がTrueのときに実行する処理
Else
'条件がFalseのときに実行する処理
End If
例:セルA1の値に応じて異なるメッセージを表示
Sub SampleIfElse()
If Range("A1").Value >= 100 Then
MsgBox "A1の値は100以上です"
Else
MsgBox "A1の値は100未満です"
End If
End Sub
(3) If~ElseIf~Else文
If 条件1 Then
'条件1がTrueのときの処理
ElseIf 条件2 Then
'条件2がTrueのときの処理
Else
'どの条件にも当てはまらない場合の処理
End If
例:点数に応じてランクを表示
Sub SampleIfElseIf()
Dim score As Integer
score = Range("A1").Value
If score >= 80 Then
MsgBox "ランクA"
ElseIf score >= 60 Then
MsgBox "ランクB"
Else
MsgBox "ランクC"
End If
End Sub
※ If文で条件が複数に分かれており、かつ条件1(If)と条件2(ElseIf)がTrueの場合は、条件1のみが実行され以下は処理されない。
🔵1つのIf文の中で実行される処理は最大1つのみ
3. If文の応用
(1) 複数条件を使う(And / Or)
If 条件1 And 条件2 Then
'両方の条件がTrueのときに実行
End If
If 条件1 Or 条件2 Then
'どちらかの条件がTrueのときに実行
End If
例:セルA1の値が50以上かつセルB1の値が100以上ならメッセージを表示
Sub SampleIfAnd()
If Range("A1").Value >= 50 And Range("B1").Value >= 100 Then
MsgBox "条件を満たしています"
End If
End Sub
(2) If文を1行で書く(ワンライナー)
VBAでは簡単なIf文を1行で書くこともできます。
If 条件 Then 処理
例:セルA1の値が100以上ならメッセージを表示(1行バージョン)
Sub SampleOneLineIf()
If Range("A1").Value >= 100 Then MsgBox "A1は100以上"
End Sub
4. まとめ
- If文は条件分岐を行うための基本構文
- 単純なIf文、If~Else、If~ElseIf~Elseを使い分ける
- And・Orを使うことで複数の条件を組み合わせられる
- シンプルな処理は1行で書くことも可能
VBAでプログラムを組む上でIf文は非常に重要な役割を持ちます。しっかり理解して、実践で活用できるようになりましょう!
コメント