「エクセルマクロ 偶数判定」
「excel vba 奇数と偶数を判定」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。
Excel VBA(Visual Basic for Applications)で奇数・偶数の判定を行う方法・マクロを探している方による検索です。
奇数・偶数判定はModを使って2で割った余りを調べる
参考になりそうな簡単なマクロをサンプルとしてご紹介しておきます。
Dim msg As String
If ActiveCell.Value Mod 2 = 0 Then
msg = "偶数"
Else
msg = "奇数"
End If
End Sub
いずれかのセルに数値を入力し、そのセルがアクティブな状態で上記のマクロを実行すると、
「アクティブセルの数値は偶数です。」
または
「アクティブセルの数値は偶数です。」
というメッセージが表示されます。
奇数・偶数の判定を行っているのは
If ActiveCell.Value Mod 2 = 0 Then
の部分です。
Modというのは、割り算の余りを求める演算子です。
「ActiveCell.Value Mod 2」で、
「アクティブセルの値を2で割った余りを求めよ」という計算になります。
ActiveCell.Valueを2で割り算した余りを調べ、余りが「0」なら偶数、余りが「0」でなければ奇数と判定しています。
Microsoft KBで紹介されている手法
MicrosoftのKB(Knowledge Base)には「数値が偶数か奇数かを判断するマクロ」が掲載されています。
ワークシート関数のISEVEN関数を使った
ValueIsEven = IsEven(Counter)
If ValueIsEven = True Then
というコードで奇数・偶数の判定を行っています。
このコードは、Excel 7.0(Excel 95)の時代に書かれたもののようで、最近のExcelの場合、このコードのままでは動かないはずです。
もし最近のバージョンでこのコードを動かそうとするのであれば、
ValueIsEven = IsEven(Counter)
の部分を
ValueIsEven = WorksheetFunction.IsEven(Counter)
と修正してください。
97以降のExcel VBAでワークシート関数を使う場合、WorksheetFunctionプロパティでWorksheetFunctionオブジェクトを取得して、そのメソッドとして利用するようになっていますので。
Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » VBAで奇数・偶数判定を行う-Mod演算子