VBA 商の求め方 まとめ
どうも、こんぺです。
今回、割り算(除算)の「商」の求め方についてメモ程度ですがまとめます。
特にVBA上で日付を取り扱ううえで「商と余り」は頻繁に使う内容で、こちらで紹介したかったのですが、地味にボリュームができてしまい別記事にしました。
日付の扱いについては後日まとめたいと思っています。
割り算(除算)の計算結果取得の手法
VBAでロジックを構成するうえで
- 割り返した時の整数部分を取得した
- 割り返した時の少数部分を取得した
- 余りを取得したい
ということはよくあると思います。
余りは
- mod関数
を利用することが一般的だと思われますが、商を求める方法はいろいろバリエーションがあるようです。
ネットで調べると
- INT関数
- FIX関数
がよくヒットします。が、関数を使わなくても算術演算子「¥マーク(\記号)」で解決しなかったっけ?と思い比較しました。
テストコードと結果
Sub test() Dim num(6) As Double num(0) = 10 / 3 num(1) = Int(10 / 3) num(2) = Int(-10 / 3) num(3) = Fix(10 / 3) num(4) = Fix(-10 / 3) num(5) = 10 \ 3 num(6) = -10 \ 3 Debug.Print num(0) Dim i As Long For i = 1 To 3 Debug.Print num(i * 2 - 1), num(i * 2) Next End Sub
無事、Fix関数と\記号の計算結果が一致。
個人的には\記号で商を求めるのがスマートなのかな…と思っていますが、
Fix関数についてあまり詳しくなくため「\記号がふさわしくない場面」がもしかしたらあるかもしれません。
そのようなパターンがあれば、ぜひ教えて頂きたいですm(_ _)m