Close

四捨五入を行う (Excel VBA)

ワークシート関数の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

となり、すべて小数第一位で四捨五入されます。

 

Share on facebook
Share on twitter
Share on linkedin