【VBA言語】条件付きサブルーチン呼び出しについて【初心者向け解説】

【VBA言語】条件付きサブルーチン呼び出しについて【初心者向け解説】

VBA(Visual Basic for Applications)は、Microsoft Office製品(ExcelやAccessなど)で使用されるプログラミング言語です。その中で、サブルーチンは特定の処理をまとめて再利用可能な形にしたコードの塊です。条件付きサブルーチン呼び出しは、特定の条件に基づいてサブルーチンを呼び出す技法です。この技法を利用することで、処理のフローを柔軟に制御できるようになります。

サブルーチンとは?

サブルーチンは、特定の機能を実行するためのコードの集まりです。これにより、同じコードを何度も書く必要がなくなり、再利用可能な形にできます。サブルーチンは「Sub」というキーワードで定義されます。

例えば、次のようにサブルーチンを定義できます。


Sub SampleSubroutine()
    MsgBox "サブルーチンが呼び出されました!"
End Sub

この「SampleSubroutine」を呼び出すと、メッセージボックスが表示されます。サブルーチンはこのように、特定の処理をまとめたものです。

条件付きサブルーチン呼び出しの基本

条件付きサブルーチン呼び出しとは、特定の条件を満たした場合にのみサブルーチンを実行する方法です。このような条件付き実行は、VBAプログラムのフローを制御する際に非常に役立ちます。

一般的に、条件付きサブルーチン呼び出しには「If」文や「Select Case」文を使用します。

条件付きサブルーチン呼び出しの例

次に、条件付きサブルーチン呼び出しの簡単な例を見てみましょう。以下のコードでは、変数「x」の値が10より大きい場合にサブルーチン「ExampleSub」を呼び出します。


Sub Main()
    Dim x As Integer
    x = 15

    If x > 10 Then
        Call ExampleSub
    End If
End Sub

Sub ExampleSub()
    MsgBox "条件を満たしたため、サブルーチンが呼び出されました!"
End Sub

このコードでは、xが10より大きいため、「ExampleSub」が呼び出され、メッセージボックスが表示されます。

if文を使った条件付き呼び出し

「If」文は、最も基本的でよく使われる条件分岐文です。条件が真(True)であれば指定した処理を実行し、偽(False)であれば別の処理を実行することができます。

次のコードは、入力された値によって異なるサブルーチンを呼び出す例です。


Sub Main()
    Dim userInput As Integer
    userInput = InputBox("数値を入力してください:")

    If userInput > 0 Then
        Call PositiveNumberSub
    ElseIf userInput < 0 Then
        Call NegativeNumberSub
    Else
        Call ZeroSub
    End If
End Sub

Sub PositiveNumberSub()
    MsgBox "正の数が入力されました!"
End Sub

Sub NegativeNumberSub()
    MsgBox "負の数が入力されました!"
End Sub

Sub ZeroSub()
    MsgBox "ゼロが入力されました!"
End Sub

この例では、ユーザーが入力した数値に応じて異なるサブルーチンを呼び出します。正の数の場合は「PositiveNumberSub」、負の数の場合は「NegativeNumberSub」、ゼロの場合は「ZeroSub」が呼び出されます。

Select Case文を使った条件付き呼び出し

「Select Case」文は、複数の条件を比較する際に便利です。複数の「If」文を使うよりもコードが読みやすくなります。

以下は「Select Case」を使って、数値に基づいて異なるサブルーチンを呼び出す例です。


Sub Main()
    Dim score As Integer
    score = 85

    Select Case score
        Case Is >= 90
            Call ExcellentSub
        Case Is >= 70
            Call GoodSub
        Case Is >= 50
            Call AverageSub
        Case Else
            Call PoorSub
    End Select
End Sub

Sub ExcellentSub()
    MsgBox "素晴らしい!"
End Sub

Sub GoodSub()
    MsgBox "良い成績です!"
End Sub

Sub AverageSub()
    MsgBox "まあまあです。"
End Sub

Sub PoorSub()
    MsgBox "もっと頑張りましょう!"
End Sub

このコードでは、scoreの値に応じて異なるメッセージを表示するサブルーチンが呼び出されます。「Select Case」を使うことで、コードがスッキリと見やすくなります。

複数の条件を使った呼び出し

VBAでは、複数の条件を組み合わせてサブルーチンを呼び出すことも可能です。例えば、以下のようにANDやOR演算子を使って複数の条件を組み合わせることができます。


Sub Main()
    Dim age As Integer
    Dim score As Integer
    age = 20
    score = 85

    If age >= 18 And score >= 80 Then
        Call EligibleSub
    Else
        Call NotEligibleSub
    End If
End Sub

Sub EligibleSub()
    MsgBox "応募資格があります!"
End Sub

Sub NotEligibleSub()
    MsgBox "応募資格がありません。"
End Sub

このコードでは、ageが18以上でかつscoreが80以上の場合に「EligibleSub」が呼び出され、それ以外の場合は「NotEligibleSub」が呼び出されます。

コメントを残す

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