VBA 奇数・偶数を判定する方法

VBAで奇数・偶数を判定する方法です。

VBA 奇数・偶数を判定する方法

奇数・偶数の判定には「Mod演算子」を使います。Mod は割り算の余りを求めるために用いられます。つまり、対象の数値を2で割ったとき、あまりがゼロであれば「偶数」、あまりがゼロでなければ「奇数」という判断ができます。

ここでは VBAで奇数・偶数を判定する方法 を紹介します。


奇数・偶数チェックプログラム

では Mod 演算子を使って、奇数・偶数をチェックするプログラムを書いてみましょう。

標準モジュールを追加して下記コードを記述します。

'
' 関数名:奇数・偶数チェック
' 引数 :対象数値
' 戻り値:偶数:true、奇数:false
'
Public Function IsEven(Num As Long) As Boolean
  If (Num Mod 2) = 0 Then
    IsEven = True   ' 偶数
  Else
    IsEven = False  ' 奇数
  End If
End Function

このように (Num Mod 2) の結果が、0か、0以外かで判定します。あまりがあれば「奇数」、あまりがなければ「偶数」となります。

イミディエイトウィンドウ(Ctrl + G)を表示してテストしてみます。

VBA 奇数・偶数の判定プログラムテスト

ふむふむ、いい感じですね^^

ワークシート関数を使って奇数・偶数判定する

ワークシート関数を使って奇数・偶数を判定する方法もあります。つまり Excel の関数ですね。

ワークシート関数を使って奇数・偶数判定

この場合、WorksheetFunction.IsEven(Arg) と書きます。

WorksheetFunction.IsOdd(Arg) もあります。

下のコードは Sheet1 に追加したものです。セル入力した値が数値の場合、奇数・偶数を判定し、イミディエイトウィンドウに「奇数」、「偶数」の文字列を出力しています。

Private Sub Worksheet_Change(ByVal Target As Range)
  If WorksheetFunction.IsNumber(Target.Value) Then
    If WorksheetFunction.IsEven(Target.Value) Then
      Debug.Print ("偶数")
    Else
      Debug.Print ("奇数")
    End If
  End If
End Sub

詳しいことはMSDN のサイトに記載されています。

WorksheetFunction.IsEven メソッド (Excel)

WorksheetFunction.IsOdd メソッド (Excel)

まとめ

VBAで奇数・偶数を判定する方法を紹介しました。

奇数・偶数の判定に対する理解を深める「奇数・偶数チェックプログラム」を書きましたが、実務で使うならワークシート関数を使った方がいいと思います。Excel 側が提供してくれているため品質は高いですし、わざわざコードを書く手間も省けますからね、メリットは高いですよ。

奇数・偶数を判定する以上、if 文などの条件式と組み合わせて使うでしょうから、奇数・偶数の判定以降の品質を上げることに注力するようにしましょう。

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。