教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 関数】数値を四捨五入する(Application.WorksheetFunction.Round)の使い方を教えて!

構文

構文は以下の通りです。

Application.WorksheetFunction.Round(数値, 小数桁数)

解説

「Application.WorksheetFunction.Round」は、Excelの計算式である「ROUND」関数をVBA内で使用するためのメソッドです。

引数 指定 内容
数値 必須 四捨五入したい数値を指定します。
小数桁数 必須 数値を四捨五入する際の小数点以下の桁数を指定します。

使用例

Application.WorksheetFunction.Round(3.14159, 2)

使い方

具体的な使い方を紹介します。

1.単純な四捨五入

まずは、基本的な使い方として、数値を指定した桁数に四捨五入する例を紹介します。

Dim result As Double
result = Application.WorksheetFunction.Round(3.14159, 2)

上記のコードでは、数値3.14159を小数点以下2桁に四捨五入し、結果を変数「result」に格納しています。結果は「3.14」となります。

2.負の数の四捨五入

「Application.WorksheetFunction.Round」は、負の数を四捨五入する際にも使用できます。

Dim result As Double
result = Application.WorksheetFunction.Round(-2.71828, 0)

上記のコードでは、数値-2.71828を小数点以下0桁に四捨五入し、結果を変数「result」に格納しています。結果は「-3」となります。

プログラミング例

テストの点数が入力されたセル範囲から平均点を計算し、小数点以下2桁に四捨五入するプログラミング例を示します。

Sub CalculateAverage()
    Dim rng As Range
    Dim total As Double
    Dim count As Integer
    Dim average As Double
    Set rng = Range("A1:A10") ' テストの点数が入力されたセル範囲を指定
    For Each cell In rng
        total = total + cell.Value
        count = count + 1
    Next cell
    average = total / count
    average = Application.WorksheetFunction.Round(average, 2) ' 平均点を小数点以下2桁に四捨五入
    MsgBox "平均点: " & average
End Sub

上記のコードでは、A1からA10までのセル範囲に入力された点数を合計し、その平均点を計算しています。そして、平均点を小数点以下2桁に四捨五入して表示するメッセージボックスが表示されます。

まとめ

Application.WorksheetFunction.Roundメソッドを使用することで、指定した桁数に数値を四捨五入することができます。是非活用してください。