
VBAのMod演算子とは?基本的な構文と使い方を解説
Mod演算子は入力された値の剰余、割り算の余りを求める時に使用します。
Excel関数にも同様の用途でMOD関数が提供されていますが、VBAでは剰余を求める演算子としてMod演算子が提供されています。そんなMod演算子をサンプルコードを使用して説明していきます。
1.Mod演算子について
まずは、剰余についてとMod演算子の構文を確認していきましょう。
1–1.Mod演算子とは
Mod演算子は、剰余を求める計算に使う演算子です。剰余とは、割り算をした際の余りのことです。例えば、「7÷4」を計算すると「1余り3」となり、この「余り3」がModで求められる剰余となります。
1–2.Mod演算子の構文
Mod演算子の構文は以下の通りです。
割られる数 Mod 割る数
処理結果は整数で返ってきます。
2.Mod演算子の使用例
以下では、Mod演算子の使用例を見ていきます。
2–1.基本的な使用例
2で触れた構文の通り、値を入力します。
7 Mod 3
実行結果:1
解説:7÷3を計算して剰余の1が返されます。
2–2.ゼロ割の場合
次に割る数が0の場合を見ていきましょう。
5 mod 0
実行結果:エラー(0で除算しました)
解説:Mod演算子は割り算の商を求める演算子ではありませんが、結果を求める過程で計算を行っているため、0割エラーが発生してしまいます。
実装時には割る数が0になることがないように注意しましょう。
2–3.小数の場合
小数の場合を見ていきましょう
5 Mod 2.5
実行結果:1
解説:「5÷2.5」の剰余を求めているということで、割り切れるため「0」となるかと思われますが、結果は「1」となります。ここには、数値の端数処理が関わっています。式で割る数・割られる数に入力される値には端数処理が行われ、計算には整数が用いられます。
VBAでは端数が「.5」の場合には偶数に寄せる「銀行丸め」という処理を行っているため、上記ソースの「2.5」部分は「2」として計算され、「5÷2」の実行結果が「1」となっています。
「3.5」で割る場合を見ていきましょう。
5 Mod 3.5
実行結果:1
解説:「3.5」が銀行丸めで偶数の「4」に切り上げられているため、実行結果は「1」となります。上記二つの式では端数が「.5」ですが、それ以外の端数処理では四捨五入されます。
5 Mod 2.6 7 Mod 3.4
実行結果:2、1
解説:上の式の割る数「2.6」は四捨五入で「3」として計算されるため、「5÷3」の剰余が実行結果「2」として返ってきています。
下の式でも同様に、割る数「3.4」は四捨五入して「3」として計算されるため、「7÷3」の剰余が実行結果「1」として返ってきています。
2–4.負数の場合
最後に、負数の場合を見ていきます。まず、割る数が負数の場合を考えてみましょう。
4 mod -3
実行結果:1
解説:「4÷(-3)」の商は 「-1」、剰余は「1」となります。
次に、割られる数が負数の場合です。
-4 mod 3
実行結果:-1
解説:「(-4)÷3」の商は 「1」、剰余は「-1」となります。
割られる数=割る数×商+剰余となるため、Mod演算子の前後の値により、剰余も負数になる場合があります。
3.さいごに
以上、Mod演算子について、基本的な使用例をまとめました。計算する値に注意して、条件分岐などに活用してください。
コメント