ワークシート関数のROUND関数で四捨五入を前々回に行ないましたが、
VBAでもROUND関数があります。
以下はROUNDを使って端数処理を行うサンプルです。
Sub ROUNDサンプル() Dim Num(3) As Variant Num(0) = 15.1 Num(1) = 15.4 Num(2) = 15.5 Num(3) = 16.5 For i = 0 To 3 '小数第一位で四捨五入 Debug.Print Round(Num(i), 0) Next End Sub
結果は
15
15
16
16
となり、15.5の場合は16で四捨五入されていますが、
16.5の場合も16となっています。
これは銀行丸めと呼ばれ、四捨五入とは異なるものです。
そこでVBA関数のROUNDではなく、
ワークシート関数のROUNDをVBAで使用してみます。
Sub WorksheetFunction_ROUNDサンプル() Dim Num(3) As Variant Num(0) = 15.1 Num(1) = 15.4 Num(2) = 15.5 Num(3) = 16.5 For i = 0 To 3 '小数第一位で四捨五入 Debug.Print WorksheetFunction.Round(Num(i), 0) Next End Sub
「WorksheetFunction.」を入れただけですが
結果は
15
15
16
17
となり、すべて小数第一位で四捨五入されます。