
If~Then~ElseIfステートメント マクロ講座
この記事では、Excel 2013でのマクロ講座24回目として「If~Then~ElseIfステートメント」を使用した条件分岐について学びます。
このステートメントを使うことで、ユーザーからの入力に基づいて複数の処理を選択して実行することができます。
特に、InputBox関数を用いてユーザーから情報を入力してもらい、その情報に基づいて処理を振り分ける方法について詳しく解説します。
If~Then~ElseIfステートメントは、条件に基づいて異なる処理を実行するための構文です。以下のように書きます:
If 条件式 Then
処理1
ElseIf 条件式2 Then
処理2
ElseIf 条件式3 Then
処理3
Else
処理4
End If
この構文を使うことで、複数の条件に基づいて処理を分岐させることができます。
多岐選択処理とは
複数の処理の中から1つだけ選んで実行することを多岐選択処理といいます。
構文として使うのは、If~Then~ElseIfステートメントです。
IF ~Then ~ElseIf ステートメントを使うと論理式を使った多岐選択処理を作成できます。
他に、Select Ifステートメントがあります。
If 条件式 Then ~ ElseIf~ElseIf ~ End If を使うと、
条件式の判定をいくつも書くことができます。
ダイアログボックスを表示してユーザーからの情報を文字列として入力してもらう便利な関数がInputBox関数です。
入力してもらった情報で条件分岐をして、点数を判断します
(サンプルファイルは、こちらから 2013マクロ講座24回サンプルデータ)
[構文]
InputBox(Prompt, Title, Default, Xpos, Ypos, HelpFile, Context)

Sub 点数を入力してもらって判定()
Dim tennsuu As Variant
tennsuu = InputBox("テストの点数は何点ですか?", "kekka")
If tennsuu >= 80 Then
MsgBox "優秀です"
ElseIf tennsuu >= 60 Then
MsgBox "まあまあです"
ElseIf tennsuu >= 40 Then
MsgBox "危険です"
Else
MsgBox "追試です"
End If
End Sub

Sub 点数を入力してもらって判定()
Dim tennsuu As Variant
tennsuu = InputBox("テストの点数は何点ですか?", "kekka")
If IsNumeric(tennsuu) Then
If tennsuu >= 80 Then
MsgBox "優秀です"
ElseIf tennsuu >= 60 Then
MsgBox "まあまあです"
ElseIf tennsuu >= 40 Then
MsgBox "危険です"
Else
MsgBox "追試です"
End If
Else
MsgBox "数値が入力されませんでした。終了します。"
End If
End Sub