【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」が呼び出されます。