*当ブログではアフェリエイト広告を利用しています。

VBA

【VBA】条件分岐If…Then…ElseとSelect Caseを活用しよう!

VBA条件分岐
momeq
モー
モー

今回は、条件分岐について学んでいきます。VBAにはIf…Then…ElseとSelect Caseがありますが、しっかりと使えるようにしていきたいところです。

プログラミングにおける重要な要素の一つに「条件分岐」があります。これは特定の条件に基づいてプログラムが異なる結果を提供するものであり、プログラムを使う上で必要不可欠なものです。

なぜ条件分岐が不可欠かというと、それはプログラムが静的ではなく、動的な状況やデータに適応できるようにするためです。

例えば、ユーザー入力に対応したり、異なる状況で異なるアクションを実行したりする場合に、条件分岐はプログラムに「思考」を可能にし、それを可能な限り有用で効果的にします。

VBAでは主に2種類の方法で条件分岐を行うことができるようになって、状況によって使い分けて使用します。

では、どのようなものなのか、使い方などを見ていきましょう。

If…Then…Else

If...Then...Else文は、条件分岐の基本形で、条件分岐といえば、こちらを使うことになります。

If 条件 Then
    ' 条件が真(True)のときに実行されるコード
Else
    ' 条件が偽(False)のときに実行されるコード
End If

これを使用する典型的な例として、特定の数値が10より大きいかどうかを判断するプログラムを考えてみましょう。

Dim num As Integer
num = 15

If num > 10 Then
    MsgBox "Number is greater than 10."
Else
    MsgBox "Number is not greater than 10."
End If

ここでは、もし変数numが10より大きければ、”Number is greater than 10.”というメッセージを表示し、10以下であれば、”Number is not greater than 10.”というメッセージが表示されます。

また、If...Then...Else文はネスト(入れ子に)することも可能です。

これにより、複数の条件を組み合わせてより複雑なロジックを作ることができます。

Dim num As Integer
num = 15

If num > 10 Then
    If num < 20 Then
        MsgBox "Number is between 10 and 20."
    Else
        MsgBox "Number is greater than 20."
    End If
Else
    MsgBox "Number is not greater than 10."
End If

このコードでは、変数numが10より大きく、かつ20より小さい場合には “Number is between 10 and 20.”というメッセージが表示され、そうでない場合はそれぞれ適切なメッセージが表示されます。

Select Case

Select Case文は、ある変数や式の値によって処理を分岐させるための文です。

If...Then...Elseでもできますが、分岐が複数に渡る場合、Select Caseの方が明確に表現することができます。

Select Case 対象となる式
    Case 値1
        ' 式が値1に等しいときに実行されるコード
    Case 値2
        ' 式が値2に等しいときに実行されるコード
    Case Else
        ' 上記の値に一致しないときに実行されるコード
End Select

例えば、曜日によってメッセージを表示する場合のコードは次のようになります。

Dim dayOfWeek As String
dayOfWeek = "Monday"

Select Case dayOfWeek
    Case "Monday"
        MsgBox "Start of the work week."
    Case "Friday"
        MsgBox "End of the work week."
    Case Else
        MsgBox "It's the middle of the work week."
End Select

ここでは、曜日に応じて異なるメッセージが表示されます。

まとめ

以上の通り、VBAにおいては、If...Then...ElseSelect Caseを用いて条件分岐を実現しています。

条件分岐はプログラミングにおける中心的な要素であり、プログラムに動的な対応力を与えてくれる必要不可欠な要素と言えるでしょう。

これらを適切に使いこなすことで、変化するデータや状況に対応した柔軟なプログラムを作成できるため、しっかりと理解し、適用することでVBAプログラミングスキルを一段階向上させてください。

モー
モー

VBAを体系的に学びたい場合、本で学ぶことをお勧めしています。

kindle unlimited(キンドルアンリミテッド)であれば、いくつかのVBA関係の本を無料で読むこともできますよ。

Kindle Unlimited

記事URLをコピーしました