VBA 数学マクロ入門講座の9回目の記事です。
前回登場した If…Then…Elseステートメントをもう少し詳しく解説します。
入力された数値の正負を判定します
ダイアログボックスで入力された 数値の符号を判定するサブルーチン を作成してみます。
'符号判定マクロ
Sub SIGN()
Dim x As Double
x = InputBox("数値を入力してください")
If x = 0 Then
MsgBox "x は 0 です"
ElseIf x > 0 Then
MsgBox "x は正です"
Else
MsgBox "x は負です"
End If
End Sub
マクロを実行すると数値の入力を促されます。
たとえば 3 を入力するとメッセージボックスに
x は正です
と表示され、-2 を入力すると
x は負です
と表示されます。 0 を入力すると
x は 0 です
というメッセージが表示されます。
If…Then…Elseステートメントは条件ごとに処理を変える命令文で、以下の形式で記述します。
If [条件1] Then [条件1] を満たす場合の処理 ElseIf [条件2] Then [条件2] を満たす場合の処理 Else [条件1] も [条件2] も満たさない場合の処理 End If
If…Then は「もし…ならば」、
ElseIf…Then は「そうでなくて、もし…ならば」、
Else は「その他の場合」という意味の命令文です。
条件の数はもっと多くて構いませんが、その場合は
ElseIf [条件3] Then [条件3] を満たす場合の処理 ElseIf [条件4] Then [条件4] を満たす場合の処理 ・・・・・・・・・・・・・・・
という具合に ElseIf 文を追加しておきます。改めて正負判定マクロを見てみると、
If x = 0 Then MsgBox "x は 0 です" ElseIf x > 0 Then MsgBox "x は正です" Else MsgBox "x は負です"
となっていて、これは条件ごとに
x = 0 ⇒ 「 x は 0 です」を表示
x > 0 ⇒ 「 x は正です」を表示
それ以外の数値 ⇒ 「 x は負です」を表示
という処理をするように命じているのです。
エクセルや数学に関するコメントをお寄せください