VBAでのif文(条件分岐)をマスター!基本と応用テクニック

この記事では、VBAにおける条件分岐(If文)の基本的な使い方と応用テクニックについて、初心者にもわかりやすく説明します。VBAでのIf文は、特定の条件を満たす場合に特定の処理を行い、満たさない場合には別の処理を行うための重要な構文です。以下の内容で、VBAのIf文の使い方をマスターしましょう。

目次

Ifステートメントの基本構造

VBAでのIf文は、特定の条件が真か偽かに基づいて処理を分岐するための基本的な構文です。

基本形

If 条件式 Then
    真の処理
[Else
    偽の処理]
End If

例文1:基本的なIf文

If Cells(2, 3) <= 50 Then Cells(2, 4) = "合格"

この例では、C2セルの値が50以下であれば、D2セルに”合格”という文字が入ります。条件が真であればThenの後の処理が実行される基本的な形です。

演算子の使用

If文では、条件を詳細に指定するために演算子を使用します。

比較演算子

  • >:より大きい
  • <:より小さい
  • =:等しい
  • >=:以上
  • <=:以下

論理演算子

  • And:かつ
  • Or:または
  • Not:否定

これらの演算子を組み合わせることで、複雑な条件も表現できます。

Ifステートメントの応用

ネスト(入れ子)の使用

If文の中に別のIf文を入れることができます。

If Cells(3, 3) < 10 Then
    If Cells(3, 3) < 5 Then
        Cells(3, 4) = "低"
    Else
        Cells(3, 4) = "中"
    End If
Else
    If Cells(3, 3) < 20 Then
        Cells(3, 4) = "高"
    Else
        Cells(3, 4) = "非常に高"
    End If
End If

この例では、C3セルの値に応じてD3セルに異なる文字が入ります。値が10未満で5未満なら”低”、10未満で5以上なら”中”、10以上で20未満なら”高”、20以上なら”非常に高”となります。

ElseIfの使用

複数の条件を順にチェックする場合、ElseIfを使用します。

If Cells(4, 3) < 10 Then
    Cells(4, 4) = "低"
ElseIf Cells(4, 3) < 20 Then
    Cells(4, 4) = "中"
Else
    Cells(4, 4) = "高"
End If

この例では、C4セルの値が10未満ならD4セルに”低”、10以上20未満なら”中”、20以上なら”高”となります。ElseIfを使うことで、複数の条件を順にチェックすることができます。

Select Caseステートメント

If文の代わりに、Select Caseステートメントを使用することもあります。

Select Case Cells(5, 3)
    Case Is < 10
        Cells(5, 4) = "低"
    Case Is < 20
        Cells(5, 4) = "中"
    Case Else
        Cells(5, 4) = "高"
End Select

この例では、C5セルの値に応じてD5セルに異なる文字が入ります。Select Caseステートメントは、If文の代わりに使用できる構文で、特に複数の条件をチェックする際に便利です。

VBAのIf文に関するFAQ

Q:If文の中でElseIfとElseの違いは何ですか?

A:ElseIfは、前の条件が偽であった場合に次の条件をチェックします。一方、Elseは、前のすべての条件が偽であった場合に実行される処理を記述します。ElseIfは複数回使用できますが、Elseは一度しか使用できません。

Q:If文の中で複数の条件を組み合わせる方法は?

A:複数の条件を組み合わせるには、論理演算子AndOrNotを使用します。Andはすべての条件が真である場合に真を返し、Orはいずれかの条件が真であれば真を返します。

Q:If文とSelect Case文の違いは何ですか?

A:If文は一般的な条件分岐に使用され、Select Case文は特定の変数の値に基づいて処理を分岐させる場合に使用されます。Select Case文は、同じ変数に対して複数の条件を設定する場合に、コードが読みやすくなることがあります。

Q:If文のネストが深くなるとどうなりますか?

A:If文のネストが深くなると、コードの読みやすさが低下し、エラーの原因となることがあります。適切にコメントを付けたり、関数やサブルーチンに分割することで、コードの管理が容易になります。

Q:If文の条件が偽の場合、Else部分は必ずしも必要ですか?

A:いいえ、If文の条件が偽の場合の処理は必須ではありません。条件が偽の場合に特に何もしない場合、Else部分を省略することができます。

Q:If文の中で数値以外の文字列や日付の比較は可能ですか?

A:はい、If文の中では数値だけでなく、文字列や日付の比較も可能です。文字列の比較では大文字と小文字が区別されることがあるため、注意が必要です。

関連動画

まとめ

VBAのIf文は、プログラムの流れを制御するための強力なツールです。基本構造から応用テクニック、Select Caseステートメントの使用方法まで、この記事で学んだ知識を活用して、効率的なVBAプログラミングを楽しみましょう。

Excelのショートカットキーの練習

当サイトはショートカットキーの練習を実際の動きを確認しながら練習できる機能がついています。繰り返し指を動かして練習ができるので、ゲーム感覚で遊んでいくうちに自然とショートカットキーが使えるようになれます。ショートカットキーは暗記するよりも実際に手を動かして練習していったほうが習得が早くなるので、是非当サイトをブックマークに登録し定期的に練習してみてください。下記のSTARTキーを押下すると練習を始められます。

下のスタートボタンを押して練習モードに入ります。
STARTSTOP
※入力モード切り替え ctrl + shift + alt + space
PRE
NEXT
現在の問題をリストから除外
除外したリストをリセット
現在の除外状況のURL取得
コピー
ガイドモード
リピートモード

※推奨ブラウザ Google Chrome

PUSH ENTER
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次