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)を表示してテストしてみます。

ふむふむ、いい感じですね^^
ワークシート関数を使って奇数・偶数判定する
ワークシート関数を使って奇数・偶数を判定する方法もあります。つまり 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)
まとめ
奇数・偶数の判定に対する理解を深める「奇数・偶数チェックプログラム」を書きましたが、実務で使うならワークシート関数を使った方がいいと思います。
Excel 側が提供してくれているため品質は高いですし、わざわざコードを書く手間も省けますからね、メリットは高いですよ。
奇数・偶数を判定する以上、if 文などの条件式と組み合わせて使うでしょうから、奇数・偶数の判定以降の品質を上げることに注力するようにしましょう。
おつかれさまでした。
コメントを残す