VBA講座10 入力された数値の偶奇を判定するマクロ

 VBA 数学マクロ入門講座の10回目です。
 今回は入力された数値の 偶数/奇数を判定するマクロ を作ってみます。
 

偶奇を判定するマクロ

 ダイアログボックスで数値を入力し、メッセージボックスで偶奇を返すマクロです。

 Sub 偶奇判定()

  Dim n As Double

  n = InputBox("整数を入力してください")

  If n <> Int(n) Then
   MsgBox "整数ではありません"

  ElseIf n Mod 2 = 0 Then
   MsgBox "偶数です"

  Else
   MsgBox "奇数です"

  End If
 End Sub

 マクロを実行するとダイアログボックスで「整数を入力してください」と促されます。たとえば「 4 」と入力すると「偶数です」というメッセージが表示され、「 3 」と入力すると「奇数です」というメッセージが表示されます。「整数を入力してください」と言われているにもかかわらず、「 11.6 」のような小数を入れるようなひねくれたことをすると「整数ではありません」と注意されてしまいます。

整数でないことを判定します

 4行目のコード

If n <> Int(n) Then

において「 <> 」は「等しくない」、すなわち数学で言うところの「≠」を表す比較演算子です。また Int は数値の小数点を捨てて整数に変える VBA関数です。 n がもともと整数であれば n と Int(n) は等しいはずですが、 n が小数であればこの2つは異なった数値となります。そうした場合に

MsgBox "整数ではありません"

として整数でないことを告げるように処理します。

余りを求める演算子 Mod

 n が整数であることをパスすると次の条件判定に移ります。

ElseIf n Mod 2 = 0 Then

は「 n を 2 で割った余りが 0 ならば」という条件文です。この Mod はメソッドでも VBA関数でもなく、余りを求める演算子です。たとえば

x = 10 mod 3

と記述すると「 10 を 3 で割った余り 1 」が変数 x に格納されます。偶奇判定マクロでは数値 n を 2 で割ったときに「偶数である」と判定し、それ以外を「奇数である」と判定しています。

 ≫ 約数を求めます
 ≫ 数学マクロ講座トップページへ戻る

スポンサーリンク
末尾広告
末尾広告

コメントをどうぞ

メールアドレスが公開されることはありません。