マクロで奇数か偶数か判断する

マクロ講座77回 
マクロで奇数か偶数か判断する

奇数か偶数か判断するマクロ Excel2013 マクロ講座 77回

奇数か偶数かをマクロで判定

今回は奇数か偶数かを判定するマクロを作成します。
はじめに、入力した整数が奇数か偶数かを判断してメッセージボックスで表示するマクロを作成し、 次に、数値の右側に奇数か偶数かを入力するマクロを作ります。

(サンプルファイルは、こちらから マクロ77回サンプルデータ

偶数か奇数かを判定してメッセージで表示

例ではA2セルに入力された数値が偶数か奇数かを判定してメッセージボックスで表示しています。
奇数か偶数か判断するマクロ1
アクティブセルに入力された数値が、偶数か奇数かを判定するには、2で割った余りを求めて、余りが0なら偶数、他は奇数とします。
  If ActiveCell.Value Mod 2 = 0 Then
    判定 = "偶数"
    Else
    判定 = "奇数"
  End If
ActiveCell プロパティは、アクティブ セルを表す Range オブジェクトを返します。ActiveCell.Valueで入力された値を指しています。
コードは、はじめに、変数として判定を宣言しておきます。
Sub 偶数か奇数かメッセージする()
  Dim 判定 As String
  If ActiveCell.Value Mod 2 = 0 Then
    判定 = "偶数"
    Else
    判定 = "奇数"
  End If
  MsgBox "セルに入力された数値は、" & 判定 & "です。"
End Sub
ActiveCell.Valueの代わりに、Selection.Valueを使っても選択したセルの値が偶数か奇数かを判断できます。
Sub 偶数か奇数かメッセージする2()
  Dim 判定 As String
  If Selection.Value Mod 2 = 0 Then
    判定 = "偶数"
    Else
    判定 = "奇数"
  End If
  MsgBox "セルに入力された数値は、" & 判定 & "です。"
End Sub

偶数か奇数かを隣のセルに表示

次のサンプルは数値がA列に入力してあり、それぞれの数値が奇数か偶数かをとなりのB列に入力していくというマクロです。
奇数か偶数か判断するマクロの例の画像
偶数か奇数かを判定したいのは、マクロが書かれたブックの"Sheet1"なのですが、 これは、そのままだと ThisWorkbook.Worksheets("Sheet1") と書きますが、何度も書くのは大変です。
そこで、変数 sheetobj を Worksheet として宣言し、さらに このシートThisWorkbook.Worksheets("Sheet1") をオブジェクト変数にセットします。
これによって、コードがスッキリします。
コードの最初の部分です。
Sub 奇数か偶数か()
  Dim sheetobj As Worksheet
  Dim 数値 As Integer
  Dim i As Integer
  Dim 判定 As String
  Set sheetobj = ThisWorkbook.Worksheets("Sheet1")
変数数値が、偶数かどうかを判定するのは、2で割って余りが0かどうかで決めます。
  If 数値 Mod 2 = 0 Then
    判定 = "偶数"
    Else
    判定 = "奇数"
  End If
この操作をA1セルからA31セルで繰り返し処理しなければなりません。 そこで使うのが、いつもの For~Nextステートメントです。
For~Next ステートメントは
For~Next ステートメントの解説の画像
と記述するものす。

For と Next の直後に記される変数名は、すでにiと宣言しています。
全体のコードは以下のようになります。変数の部分は、まとめて表記しました。
Sub 奇数か偶数か()
  Dim sheetobj As Worksheet, 数値 As Integer, i As Integer, 判定 As String
  Set sheetobj = ThisWorkbook.Worksheets("Sheet1")
  
    With sheetobj
      For i = 2 To 31
        数値 = .Cells(i, 1)
        If 数値 Mod 2 = 0 Then
          判定 = "偶数"
        Else
          判定 = "奇数"
        End If
        .Cells(i, 2) = 判定
      Next i
    End With
End Sub
マクロを実行すると、B列に偶数か奇数を判定し入力します。
奇数か偶数か判断するマクロを実行した画像
今日の講義は以上です。お疲れ様でした。