【Excel】【VBA】小数や整数を四捨五入する方法

IT

ExcelでのVBAマクロを使えるようになると、人の手要らずでの計算やファイル作成が可能になります。

この記事では、小数や整数を四捨五入する方法を紹介します。

小数をFormat関数で四捨五入する方法

Format関数で四捨五入する方法を紹介します。

Format関数で四捨五入する場合は以下のように書きます。

Format(四捨五入したい数値,フォーマット)

フォーマットのところは、小数点第何位で四捨五入したいかを指定します。

下記の場合は、小数点第一位で四捨五入するという意味になります。

Format(2.83,"0")

下記の場合は小数点第二位で四捨五入するという意味になります。

Format(2.83,"0.0")

例として以下のようなプログラムを実行してみましょう。

Dim num As Double
num = Format(1.51, "0.0")
MsgBox (num)

以下のような結果になりました。

プログラムの内容を確認すると、”1.51″を小数点第二位で四捨五入するロジックとなります。

整数をFormat関数で四捨五入する方法

では、次に整数をFormat関数で四捨五入する方法を紹介します。

こちらは少し複雑で、一度小数に変換してから、Format関数を用いて四捨五入し、最後に桁数を戻すというロジックを書きます。

例として以下のようなプログラムを実行してみましょう。

894の1の位を四捨五入するプログラムです。

Dim num As Integer
Dim num_tmp As Double
Dim num_ans As Double

num = 894
num_tmp = num / 10

num_tmp = Format(num_tmp, "0")

num_ans = num_tmp * 10

MsgBox (num_ans)

以下のような結果になりました。

四捨五入したい整数を用意します。今回の場合は894です。

次に、この整数を四捨五入したい桁の分の数字で割り算をして、小数にします。

今回の場合、1の位を四捨五入するので、10で割って小数点第一位をFormat関数で四捨五入します。

その後、元の桁数(3桁)に戻すために10倍して、890という値を算出します。

※処理の流れを記載していきます。

四捨五入したい数値894を、変数numとして用意します。

一時的な変数として89.4を、変数num_tmpとして用意します。

そのnum_tmpをFormat関数で小数点第一位を四捨五入し、その値をnum_tmpに代入します(置きかえる)。

そして、最終的な数値としてnum_tmpを10倍した数値をnum_ansとして代入します。

追加情報

10の位を四捨五入する場合は、最初に10で割って小数点第一位を四捨五入し、最後に10倍します。

100の位を四捨五入する場合は、最初に100で割って小数点第一位を四捨五入します、最後に100倍します。

1000の位を四捨五入する場合は、最初に1000で割って小数点第一位を四捨五入します、最後に1000倍します。

まとめ

小数点や整数を四捨五入する方法について、紹介しました。

Format関数で四捨五入する場合は以下のように書きます。

Format(四捨五入したい数値,フォーマット)

フォーマットのところでは、小数点第何位で四捨五入したいかを指定します。

下記の場合は小数点第一位で四捨五入するという意味になります。

Format(2.83,"0")

下記の場合は小数点第二位で四捨五入するという意味になります。

Format(2.83,"0.0")

コメント

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