【VBA】条件分岐の使い方と基本構文

VBAでの条件分岐の使い方と基本構文

VBA(Visual Basic for Applications)は、Microsoft Office製品のマクロ言語として広く使用されています。VBAを使用すると、条件によって処理を分岐させることができます。この記事では、VBAでの条件分岐の使い方と基本構文について紹介します。

概要

条件分岐は、プログラムが特定の条件を満たす場合と満たさない場合に異なる処理を行うための制御構造です。VBAでは、条件分岐を実現するために

If...Then...Else

ステートメントを使用します。また、複数の条件に対応する場合には

Select Case

ステートメントを使用することもできます。

コンテンツ

  1. If...Then...Else

    ステートメントの基本構文

  2. 複数の条件を扱う
    Select Case

    ステートメント

  3. 条件分岐のネスト
  4. 論理演算子の使用

1.

If...Then...Else

ステートメントの基本構文

If...Then...Else

ステートメントは、最も基本的な条件分岐の形です。以下にその基本構文を示します。


If 条件 Then
    処理1
Else
    処理2
End If

例えば、ある変数

num

の値が特定の条件を満たす場合にメッセージボックスを表示するVBAコードは以下のようになります。


If num > 10 Then
    MsgBox "numは10より大きいです"
Else
    MsgBox "numは10以下です"
End If

2. 複数の条件を扱う

Select Case

ステートメント

Select Case

ステートメントは、複数の条件を扱う際に便利です。以下にその基本構文を示します。


Select Case 式
    Case 値1
        処理1
    Case 値2
        処理2
    Case Else
        その他の処理
End Select

例えば、ある変数

day

の値に応じて曜日を表示するVBAコードは以下のようになります。


Select Case day
    Case 1
        MsgBox "月曜日"
    Case 2
        MsgBox "火曜日"
    Case 3
        MsgBox "水曜日"
    Case 4
        MsgBox "木曜日"
    Case 5
        MsgBox "金曜日"
    Case 6, 7
        MsgBox "週末"
    Case Else
        MsgBox "不明な曜日"
End Select

3. 条件分岐のネスト

条件分岐はネストすることができます。つまり、

If...Then...Else

ステートメントや

Select Case

ステートメントの中にさらに条件分岐を記述することができます。


If 条件1 Then
    If 条件2 Then
        処理1
    Else
        処理2
    End If
Else
    処理3
End If

4. 論理演算子の使用

条件分岐では複数の条件を組み合わせる際に論理演算子を使用することができます。VBAでよく使用される論理演算子は以下の通りです。

  • And

    : 両方の条件が真の場合に真となる

  • Or

    : どちらか一方または両方の条件が真の場合に真となる

  • Not

    : 条件の否定

例えば、変数

x

が10より大きくかつ20より小さい場合に特定の処理を行うVBAコードは以下のようになります。


If x > 10 And x < 20 Then
    ' 特定の処理
End If

サンプルコード

以下に、条件分岐を使用した簡単なVBAコードのサンプルを示します。


Sub CheckNumber()
    Dim num As Integer
    num = 15
    If num > 10 Then
        MsgBox "numは10より大きいです"
    Else
        MsgBox "numは10以下です"
    End If
End Sub

このサンプルコードでは、変数

num

の値が10より大きいかどうかを判定し、メッセージボックスに結果を表示しています。

まとめ

VBAでの条件分岐には

If...Then...Else

ステートメントと

Select Case

ステートメントが利用できます。条件分岐をうまく活用することで、プログラムの特定の条件に応じた処理を柔軟に記述することができます。複雑な条件分岐やネストも可能なため、VBAを使用した効果的なプログラムを構築する際に重要な要素となります。

よくある質問

  • Q. VBAの条件分岐はどのように使いますか?
  • A: VBAでは、If文やSelect Case文などの条件分岐を使用して、特定の条件に応じてプログラムの流れを制御します。

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

  • A: If文は特定の条件が真であるかどうかを判定し、その結果に応じて処理を実行します。一方、Select Case文は複数の条件式を比較し、条件に応じた処理を行います。

  • Q. 条件分岐の基本構文はどのようになっていますか?

  • A: If文の基本構文は以下の通りです。

    vba
      If 条件式 Then
          処理1
      ElseIf 条件式2 Then
          処理2
      Else
          処理3
      End If

    Select Case文の基本構文は以下の通りです。

    vba
      Select Case 対象
          Case 条件1
              処理1
          Case 条件2
              処理2
          Case Else
              処理3
      End Select
  • Q. 複数の条件を組み合わせた条件分岐は可能ですか?

  • A: はい、複数の条件を組み合わせることが可能です。論理演算子(And、Orなど)を使用して条件式を結合し、複雑な条件分岐を実現できます。

  • Q. 条件分岐のネストは可能ですか?

  • A: はい、条件分岐の中にさらに条件分岐を組み込むことができます。これにより、複雑な条件に対応した処理を実装することが可能です。
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x