マクロで奇数か偶数か判断する
マクロ講座77回
奇数か偶数か判断するマクロ Excel2013 マクロ講座 77回
奇数か偶数かをマクロで判定
今回は奇数か偶数かを判定するマクロを作成します。
はじめに、入力した整数が奇数か偶数かを判断してメッセージボックスで表示するマクロを作成し、
次に、数値の右側に奇数か偶数かを入力するマクロを作ります。
(サンプルファイルは、こちらから マクロ77回サンプルデータ)
偶数か奇数かを判定してメッセージで表示
例ではA2セルに入力された数値が偶数か奇数かを判定してメッセージボックスで表示しています。
アクティブセルに入力された数値が、偶数か奇数かを判定するには、2で割った余りを求めて、余りが0なら偶数、他は奇数とします。
If ActiveCell.Value Mod 2 = 0 Then 判定 = "偶数" Else 判定 = "奇数" End IfActiveCell プロパティは、アクティブ セルを表す 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") をオブジェクト変数にセットします。
これによって、コードがスッキリします。
そこで、変数 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 の直後に記される変数名は、すでにiと宣言しています。
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列に偶数か奇数を判定し入力します。
今日の講義は以上です。お疲れ様でした。