Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » VBAで奇数・偶数判定を行う-Mod演算子

VBAで奇数・偶数判定を行う-Mod演算子

対象:Excel2003, Excel2007, Excel2010, Excel2013

「エクセルマクロ 偶数判定」
「excel vba 奇数と偶数を判定」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。

Excel VBA(Visual Basic for Applications)で奇数・偶数の判定を行う方法・マクロを探している方による検索です。

[スポンサードリンク]

奇数・偶数判定はModを使って2で割った余りを調べる

参考になりそうな簡単なマクロをサンプルとしてご紹介しておきます。

Sub アクティブセルの奇数偶数判定を行う()
 Dim msg As String

 If ActiveCell.Value Mod 2 = 0 Then
  msg = "偶数"
 Else
  msg = "奇数"
 End If

 MsgBox "アクティブセルの数値は" & msg & "です。"
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演算子

「条件分岐」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.