この記事では、Access VBAを使用したIf Then Else End IfとElseIfによる条件分岐の基本から応用までを解説します。複数の条件を効率的に扱う方法を学び、プログラミングスキルを向上させましょう。
Access VBAでの条件分岐の重要性
プログラミングにおいて条件分岐は不可欠です。
Access VBAでは、If Then Else End IfとElseIf構文を使用して、特定の条件に基づいて異なる動作を実行します。
これにより、アプリケーションの論理的な流れを制御し、より動的なデータベースを構築できます。
IF文を使用すると「もし~ならば〇を実行し、そうでなければ×を実行する」というような条件判断ができます。
IF文の終わりには必ずEnd Ifが必要です。
条件分岐の基本
この構文は、特定の条件が真(True)の場合と偽(False)の場合に、異なるコードブロックを実行するために使います。
例えば、ユーザーの入力値に応じてメッセージを表示したり、データを更新したりする場面で活用できます。
If 条件式 Then
条件式が真(True)の場合に実行する処理
Else
条件式が偽(False)の場合に実行する処理
End If
複数条件分岐の基本:
ElseIfの活用
複数の異なる条件を一つのIfステートメントで評価する場合、ElseIfを使用します。
これにより、コードの読みやすさが保たれ、保守が容易になります。また、パフォーマンスの点でも効率的です。
If 条件式A Then
条件式Aが真(True)の場合に実行する処理
Else If 条件式B Then
条件式Bが真(True)の場合に実行する処理
Else If 条件式C Then
条件式Cが真(True)の場合に実行する処理
…
Else
条件式が偽(False)の場合に実行する処理
End If
同じ条件分岐を解説した「Access:IIF関数をクエリで使用する|入れ子で複数条件を設定 - 雇用表の従業員総数フィールドに設定」も参照してください。
● If Then End If の使用例
Else文を使用しなければ「もし~ならば〇を実行する」になります。
Sub MyIf()
Dim s As String
s = InputBox("1~9を入力してください", "入力")
If s = "1" Then
MsgBox "1が入力されました。"
End If
End Sub
実行すると下のInput BOXが表示されるので「1」を入力します。
「If s = "1" Then」で真(True)と判定され、MsgBoxが表示されます。
● If Then Else End If の使用例
「もし~ならば IfとElseの間 を実行し、そうでなければ ElseとEndIfの間 を実行します。
Sub MyIf()
Dim s As String
s = InputBox("1~9を入力してください", "入力")
If s = "1" Then
MsgBox "1が入力されました。"
Else
MsgBox "1以外が入力されました。"
End If
End Sub
実行しInputBoxに「5」を入力します。
「If s = "1" Then」で偽(False)と判定され、以外のMsgBoxが表示されます。
● If Then ElseIf Else End If の使用例
ElseIFを使うといくつでも条件を設定できます。
ただしあまり多すぎるとバグ発生の元になり、デバッグも大変になります。
Sub MyIf()
Dim s As String
s = InputBox("1~9を入力してください", "入力")
If s = "1" Then
MsgBox "1が入力されました。"
ElseIf s = "2" Then
MsgBox "2が入力されました。"
ElseIf s = "3" Then
MsgBox "3が入力されました。"
ElseIf s = "4" Then
MsgBox "4が入力されました。"
ElseIf s = "5" Then
MsgBox "5が入力されました。"
Else
MsgBox "1~5以外が入力されました。"
End If
End Sub
実行しInputBoxに「3」を入力します。
「ElseIf s = "3" Then」で真(True)と判定され、MsgBoxが表示されます。