【ExcelVBA】整数丸め関数

少数 → 整数へのキャストに伴う丸め

Dim i As Integer
i = 9 / 10
MsgBox (i)

 

結果

1

 _人人_
> 1 <
 ̄Y ̄

少数部分が0.0 <= x <=0.5 の範囲なら 0

小数部分が0.5 < x の範囲なら 1。

ギリギリ四捨五入じゃない。なんだこの仕様。

 

関数まとめ

Excelの関数を直接呼びにいく

Application.Round(0.5, 0) ' 正しく四捨五入

Application.RoundUp(0.1, 0) ' 切り上げ

Application.RoundDown(0.5, 0) ' 切捨て