【ExcelVBA・マクロ】Round関数の使い方|四捨五入する方法を完全解説【コピペOK】

Round関数の使い方 ExcelVBA

VBAで数値を扱っていると、次のようなことはありませんか?

  • 小数点を四捨五入したい
  • 金額計算を見やすくしたい
  • 小数点以下の桁数を調整したい

このような場合は、Round関数を使うことで解決できます。
数値を指定した桁数で四捨五入できる、非常に便利な関数です。

この記事では、Round関数の基本から注意点、実務での活用方法まで分かりやすく解説します。


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

この記事でできること

  • 数値を四捨五入できる
  • 小数点桁数を調整できる
  • 実務で使える数値処理が分かる

基本:Round関数の使い方

基本構文はこちらです。

Round(数値, 桁数)
引数内容
数値四捨五入したい値
桁数小数点以下の桁数

基本例

MsgBox Round(3.14159, 2)

→ 3.14


整数へ四捨五入する

MsgBox Round(3.6, 0)

→ 4


小数点以下を指定する

MsgBox Round(123.4567, 1)

→ 123.5


負の桁数を使う

10の位・100の位で丸められます。

MsgBox Round(1234, -2)

→ 1200


セルに結果を書き込む

Range("A1").Value = Round(123.456, 2)

変数を使った例

Dim num As Double

num = 98.7654

MsgBox Round(num, 1)

→ 98.8


実務での活用例

  • 金額計算
  • 平均値表示
  • レポート作成
  • 小数点表示調整

帳票作成では非常によく使われます。


注意:VBAのRoundは「銀行丸め」

ここが非常に重要です。

VBAのRound関数は通常の四捨五入ではなく、銀行丸め(Banker’s Rounding)を行います。

MsgBox Round(2.5, 0)

→ 2

MsgBox Round(3.5, 0)

→ 4

偶数へ丸められる仕様です。


通常の四捨五入をしたい場合

WorksheetFunction.Round を使います。

MsgBox WorksheetFunction.Round(2.5, 0)

→ 3


Round・Int・Fixの違い

関数内容
Round四捨五入
Int切り捨て
Fix0方向へ切り捨て

安全な書き方(おすすめ)

Dim val As Variant

val = Range("A1").Value

If IsNumeric(val) Then
    MsgBox Round(val, 2)
End If

よくあるエラーと対処法

① 思った結果にならない

銀行丸めの可能性があります。

② 型が一致しません

数値以外を渡している可能性があります。

③ 小数点表示が変わらない

セルの表示形式を確認してください。

④ コードは正しいのにエラーになる

コピー時に全角文字や特殊文字が混ざることがあります。
その場合は該当行を手入力し直すと解決することがあります。


まとめ

  • Roundは四捨五入する関数
  • 小数点桁数を指定できる
  • VBA特有の銀行丸めに注意
  • 実務では非常に使用頻度が高い

Round関数を使いこなせるようになると、数値表示や計算処理が非常に便利になります。
特に「銀行丸め」の仕様は重要なので、必ず覚えておきましょう。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

タイトルとURLをコピーしました