【Excel】エクセル VBA編 If~Thenを使った条件分岐

条件により処理を分岐させたい場合は、If~ElseIfステートメントを使用します。Ifは、”If 条件式 Then”の形式で条件を調べて、 条件式に合致(式を評価した結果がtrueであるとき)だけその次のステートメントを実行します。 条件がtrueでないときは、次の次の条件式の条件を調べます。


If 条件式1 Then
    条件式1を満たした場合の処理
ElseIf 条件式2 Then
    条件式2を満たした場合の処理
Else
    条件式1と条件式2を満たさなかった場合の処理
End If

条件式で使われている比較演算子には、以下のものあります。

演算子 意味
= 等しい If Value=5 Then ⇒ Valueの値が5ならTrue
< より小さい If Value<5 Then ⇒ Valueの値が5より小さいならTrue
<= 以下 If Value<=5 Then ⇒ Valueの値が5以下ならTrue
> より大きい If Value>5 Then ⇒ Valueの値が5より大きいならTrue
>= 以上 If Value>=5 Then ⇒ Valueの値が5以上ならTrue
<> 等しくない If Value<>5 Then ⇒ Valueの値が5と等しくないならTrue

以下の例ではインプットボックスを使って入力された文字により処理を分岐させた例です。

ページコンテンツ

If Then Statement

ワークシートにコマンドボタンを配置し、次のコード行を追加します。

Dim score As Integer, result As String
score = Range(“A1”).Value

If score >= 60 Then result = “pass”

Range(“B1”).Value = result

説明:スコアが60以上の場合、Excel VBAは合格を返します。

シート上のコマンドボタンをクリックしたときの結果:

Excel VBA If Thenステートメント

注:scoreが60より小さい場合、Excel VBAは空の変数結果の値をセルB1に配置します。

Else Statement

ワークシートにコマンドボタンを配置し、次のコード行を追加します。

薄暗いスコアとして 整数は、結果として 文字列の
スコア=範囲(「A1」)。値

Dim score As Integer, result As String
score = Range(“A1”).Value

If score >= 60 Then
    result = “pass”
Else
    result = “fail”
End If

Range(“B1”).Value = result

説明:スコアが60以上の場合、Excel VBAは合格を返し、それ以外の場合はExcel VBAは失敗を返します。

シート上のコマンドボタンをクリックしたときの結果:

Excel VBAのその他のステートメント

注:Thenの後に1行のコード行があり、Elseステートメントがない場合に限り、Thenの直後にコード行を配置し、End Ifを省略(省略)することができます(最初の例)。そうでなければ、ThenとElseの後に改行して、End Ifで終了します(2番目の例)。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です