Round【ラウンド】関数
指定した小数点位置で数値を丸めるには、Round【ラウンド】関数を使用します。
Round【ラウンド】関数の書式と引数の説明
[]内は省略可能です。
Round (expression [, NumDegitsAfterDecimal])
【戻り値】 引数 expression と同一のデータ型
- expression【エクスプレッション】(必須)
丸めを行う数値または数式を指定します。 - NumDegitsAfterDecimal【ナムディジェットアフターデシマル】(省略可)
丸めを行う小数点以下の桁数を表す数値を指定します。省略すると、整数値を返します
※整数部分の丸め処理はできません。
※VBAのRound関数は「算術型(四捨五入)」ではなく「銀行型」の丸め処理になります。「算術型(四捨五入)」の丸め処理では「5」は切り上げられますが、「銀行型」の丸め処理の場合は、結果が偶数になるように丸め処理が行われ、左の数値が偶数の場合は切り捨てられ、奇数の場合は切り上げられてます。
「算術型」四捨五入と「銀行型」銀行丸めの違い
数値 | 算術型(四捨五入) | 銀行型(銀行丸め) |
---|---|---|
1.5 | 2 | 2 |
2.5 | 3 | 2 |
3.5 | 4 | 4 |
4.5 | 5 | 4 |
5.5 | 6 | 6 |
6.5 | 7 | 6 |
コード例
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【ラウンド】関数を使用します。引数は、(対象の数値,小数点の桁数)です。