[VBA] 数値の符号を判定するサブルーチン

 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 は負です」を表示

という処理をするように命じているのです。

 ≫ 偶奇を判定します
 ≫ 数学マクロ講座トップページへ戻る

エクセルや数学に関するコメントをお寄せください