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【ラインド】関数についての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告