【マクロVBA】Mod関数を使って割り算の余りを求める方法!偶数・奇数の数を数えるにも活用!

計算・関数

割り算をした後の余りを求める関数として
「Mod関数」があります。

こちらは、対象のセル・変数などの数値をもとに割り算をした後の余りを求める関数となっています。

さらにMod関数を使用すれば、簡単に偶数または奇数の判別ができるので、ぜひ参考にしてみてください。
それでは見ていきましょう。




⬛︎こんな事ができるようになる!

・VBAのMod関数を使って割り算の余りを求めることができる
・Mod関数を使って偶数・奇数の数を数える方法を学ぶことができる

⬛︎忙しい人向けのコピペ用ソースコード

Sub 余りを求める()

Dim 数値1 As Integer
Dim 数値2 As Integer
Dim 余り As Integer

数値1 = 対象のセル・変数1
数値2 = 対象のセル・変数2
余り = 数値1 Mod 数値2

MsgBox "割り算の余りは: " & 余り

End Sub

対象のセル・変数をカスタムして使用してください。

⬛︎構文の説明

まず、使用する関数についてですMod関数」になります。
関数仕様としては下記の通りです。

余り = 数値1 Mod 数値2
とてもシンプルな関数ですね。
では実際に使用した例を紹介したいと思います。

⬛︎Modで割ったあとのあまりを求める

・通常の使用方法

Mod関数を通常の割り算の余りの求め方として使用する方法を紹介します。
下図の見本をご覧ください。

今回は数値1から数値2を割って、その余りを求めたいと思います。
では再度構文を見ていきましょう。

余り = 数値1 Mod 数値2
とてもシンプルですね。
では構文に当てはめてみましょう。
ソースコードは下記の通りです。

 

Sub 通常の使用方法()

Dim 数値1 As Integer
Dim 数値2 As Integer
Dim 余り As Integer

数値1 = Cells(2, 3)
数値2 = Cells(3, 3)
余り = 数値1 Mod 数値2

Cells(6, 3) = 余り

End Sub

それでは実行してみましょう。
結果はこのようになります。

「10/3」の結果は「3あまり1」なので余りの「1」が出力されています。
うまく機能していますね。

■Mod関数を使用した応用方法

ではMod関数を使用した応用方法を紹介します。

・偶数・奇数の数を数える

Mod関数を使って、指定した範囲内の偶数・奇数の数を数える方法を紹介します。
今回は「偶数」を数えてみます。
下図の見本をご覧ください。

C2からC7までにある数値の中で偶数の数を数えたいと思います。
そこで今回は「Mod関数」を応用して数えてみましょう。

偶数か、判別するためにはMod演算で2で割ったあまりを求めます。

つまり、「If 対象の数値 Mod 2 = 0  」で対象の値を2で割ったのち、その値が「0」か条件分岐します。
結果が「0」の場合は偶数なのでカウントアップをする仕組みです。

条件分岐は下記記事を参照してください。

では見本のソースコードを見ていきましょう。

Sub 偶数の数を数える()

Dim 偶数の数 As Integer
Dim i As Integer

偶数の数 = 0
For i = 2 To 7
 If Cells(i, 3) Mod 2 = 0 Then
  偶数の数 = 偶数の数 + 1
 End If
Next i

Cells(13, 3) = 偶数の数

End Sub

それでは実行してみましょう。
結果はこのようになります。

対象範囲に偶数は「3」つあるので上手く機能していますね!

⬛︎よくあるエラーと対処法

・#DIV/0! エラー

 エラーの原因: MOD関数の除数がゼロの場合、このエラーが発生します。

 対処法: 除数がゼロにならないように確認してください。
            条件分岐などを使って、除数がゼロの場合にエラーを回避するような処理を追加することができます。

・#VALUE! エラー

 エラーの原因: MOD関数の引数に数値以外の値が含まれている場合、このエラーが発生します。
                     例えば、文字列やエラー値が引数として渡された場合です。

 対処法:: 引数の値が正しいデータ型かどうかを確認してください。
              数値以外の値が渡されないようにするか、適切なエラーハンドリングを行いましょう。

・#NUM! エラー

 エラーの原因: MOD関数の引数に無効な値が含まれている場合、このエラーが発生します。
                     例えば、非数値を含む引数や、非整数を除数として使用した場合です。

 対処法:: 引数の値が正しい範囲内にあるか、整数であるかを確認してください。
              引数に整数を使用するか、必要に応じて値を修正してください。

 

これらのエラーはMOD関数の使用時に注意が必要です。適切な値を使用し、エラーハンドリングを行うことで、正確な結果を得ることができます。

■練習問題

練習問題も別の記事でまとめているので是非参考にしてみてください!

⬛︎公式の説明

わかりやすいように説明したため公式と使用する語句が異なりますが
マイクロソフト公式の説明については下記のリンクを参照してください。☟

Mod 演算子 | Microsoft Learn

⬛︎まとめ

いかがだったでしょうか?
この記事では、VBAのMod関数を使って割り算の余りを求める方法と、偶数の数を数える方法について紹介しました。
Mod関数は、さまざまなシナリオで活用することができるので、ぜひ応用してみてください。

ぜひ活用してみてください。

それでは次回の記事でお会いしましょう。

コメント