VBA 指定した小数点位置で数値を丸める Round関数

スポンサーリンク
スポンサーリンク

Round【ラウンド】関数

指定した小数点位置で数値を丸めるには、Round【ラウンド】関数を使用します。

Round【ラウンド】関数の書式

[]内は省略可能です。
Round (expression [, NumDegitsAfterDecimal])
【戻り値】 引数 expression と同一のデータ型


設定値(引数)の説明

  • expression【エクスプレッション】(必須)
    丸めを行う数値または数式を指定します。
  • NumDegitsAfterDecimal【ナムディジェットアフターデシマル】(省略可)
    丸めを行う小数点以下の桁数を表す数値を指定します。省略すると、整数値を返します


    ※整数部分の丸め処理はできません。
    ※VBAのRound関数は「算術型(四捨五入)」ではなく「銀行型」の丸め処理になります。「算術型(四捨五入)」の丸め処理では「5」は切り上げられますが、「銀行型」の丸め処理の場合は、結果が偶数になるように丸め処理が行われ、左の数値が偶数の場合は切り捨てられ、奇数の場合は切り上げられてます。

    「算術型」四捨五入と「銀行型」銀行丸めの違い

    数値算術型(四捨五入)銀行型(銀行丸め)
    1.522
    2.532
    3.544
    4.554
    5.566
    6.576

コード例

Sub 銀行丸め()
Dim 値 As Single
値 = 1.52535
MsgBox _
Round(値) & vbCrLf & _
Round(値, 1) & vbCrLf & _
Round(値, 2) & vbCrLf & _
Round(値, 3) & vbCrLf & _
Round(値, 4)
End Sub

実行結果

小数点以下を四捨五入するには

VBAでは、厳密な意味で、数値を切り上げたり、四捨五入する関数はありません。したがって、数値を四捨五入によって丸めるには、ワークシート関数のRound【ラウンド】関数、数値を切り上げて丸めるにはワークシート関数のRoundUp【ラウンドアップ】関数を使用します。

ワークシート関数のRound関数使用コード例

Sub 四捨五入()
Dim 値 As Single
値 = 1.52535
MsgBox _
WorksheetFunction.Round(値, 0) & vbCrLf & _
WorksheetFunction.Round(値, 1) & vbCrLf & _
WorksheetFunction.Round(値, 2) & vbCrLf & _
WorksheetFunction.Round(値, 3) & vbCrLf & _
WorksheetFunction.Round(値, 4)
End Sub

コードの解説

Application【アプリケーション】オブジェクトのWorksheetFunction【ワークシートファンクション】プロパティを使用して、ワークシート関数のコンテナ(入れ物)となるWorksheetFunction【ワークシートファンクション】オブジェクトを取得してワークシート関数のRound【ラウンド】関数を使用します。引数は、(対象の数値,小数点の桁数)です。

実行結果


以上で、Round【ラインド】関数についての解説を終了します。ありがとうございました。

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク