VBA Mod演算子について ~関数の解説と使用例~

VBA Mod演算子について ~関数の解説と使用例~

ENGINEER.CLUB編集部

Mod演算子は入力された値の剰余、割り算の余りを求める時に使用します。

Excel関数にも同様の用途でMOD関数が提供されていますが、VBAでは剰余を求める演算子としてMod演算子が提供されています。そんなMod演算子をサンプルコードを使用して説明していきます。

就活生向け特設ページ

1.Mod演算子について

まずは、剰余についてとMod演算子の構文を確認していきましょう。

1.Mod演算子とは

Mod演算子は、剰余を求める計算に使う演算子です。剰余とは、割り算をした際の余りのことです。例えば、「7÷4」を計算すると「1余り3」となり、この「余り3」がModで求められる剰余となります。

2.Mod演算子の構文

Mod演算子の構文は以下の通りです。

割られる数 Mod 割る数

処理結果は整数で返ってきます。


2.Mod演算子の使用例

以下では、Mod演算子の使用例を見ていきます。

1.基本的な使用例

2で触れた構文の通り、値を入力します。

7 Mod 3

実行結果:1

解説:7÷3を計算して剰余の1が返されます。

2.ゼロ割の場合

次に割る数が0の場合を見ていきましょう。

5 mod 0

実行結果:エラー(0で除算しました)

解説:Mod演算子は割り算の商を求める演算子ではありませんが、結果を求める過程で計算を行っているため、0割エラーが発生してしまいます。

実装時には割る数が0になることがないように注意しましょう。

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

実行結果:21

解説:上の式の割る数「2.6」は四捨五入で「3」として計算されるため、「5÷3」の剰余が実行結果「2」として返ってきています。

下の式でも同様に、割る数「3.4」は四捨五入して「3」として計算されるため、「7÷3」の剰余が実行結果「1」として返ってきています。

4.負数の場合

最後に、負数の場合を見ていきます。まず、割る数が負数の場合を考えてみましょう。

4 mod -3

実行結果:1

解説:「4÷(-3)」の商は 「-1」、剰余は「1」となります。

次に、割られる数が負数の場合です。

-4 mod 3

実行結果:-1

解説:「(-4)÷3」の商は 「1」、剰余は「-1」となります。

割られる数=割る数×商+剰余となるため、Mod演算子の前後の値により、剰余も負数になる場合があります。


3.さいごに

以上、Mod演算子について、基本的な使用例をまとめました。計算する値に注意して、条件分岐などに活用してください。

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

『技術力』と『人間力』を高め市場価値の高いエンジニアを目指しませんか?

私たちは「技術力」だけでなく「人間力」の向上をもって遙かに高い水準の成果を出し、関わる全ての人々に感動を与え続ける集団でありたいと考えています。

高い水準で仕事を進めていただくためにも、弊社では次のような環境を用意しています。

  • 定年までIT業界で働くためのスキル(技術力、人間力)が身につく支援
  • 「給与が上がらない」を解消する6ヶ月に1度の明確な人事評価制度
  • 平均残業時間17時間!毎週の稼動確認を徹底しているから実現できる働きやすい環境

現在、株式会社ボールドでは「キャリア採用」のエントリーを受付中です。

まずは以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。

コメント

文系IT未経験歓迎!株式会社ボールドの 採用エントリー を受付中!
文系IT未経験歓迎!
株式会社ボールドの 採用エントリー を受付中!