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