【ExcelVBA入門】四捨五入をするためにおすすめな2つの方法とは

これを読めば大丈夫‼ VBAで四捨五入する方法

こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。

皆さんは、VBAで数値を四捨五入する方法を知っていますか? Excelで四捨五入と聞くとRound関数を思いつく方もいるかもしれませんが、VBAのRound関数では切り捨て・切り上げが上手く計算されません。

そこで今回は、VBAで四捨五入する方法といった基礎的なことから、

  • Format関数の使い方
  • ワークシート関数Roundメソッドの使い方
  • 切り上げ・切り捨てが決まっている場合におすすめの方法


といった応用的な方法まで、徹底的に解説します!

Round関数を使った四捨五入時の注意点

VBAではRound関数を使うと「銀行丸め」形式で小数点以下を四捨五入することができます。

Round関数の書き方は以下の通りです。

ただ、「銀行丸め」形式は特殊な四捨五入で、端数が0.5ちょうどだった場合偶数になる方へ値を丸めるという性質があります。そのため、一般的な四捨五入で使うことができません。

言葉だけでは伝わりづらいので、サンプルコードを用意しました。

サンプルコード:

実行結果:

このように偶数に近い値になってしまうため、一般的な四捨五入になっていないですよね。Excelの数式でRound関数を使っていた人が間違えやすいケースなのですが、VBAで一般的な四捨五入をする場合は2パターン別の方法があります。

Format関数を使う方法

まずは、Format関数を使う方法です。Format関数で四捨五入する場合は、次のように書きます。

Round関数を書き換えると、次のようになります。

サンプルコード:

実行結果:

四捨五入できましたね。”0″となっているフォーマットは、”0.0″、”0.00″のようにすることで、小数第二位、小数第三位と四捨五入する位置を変更することができます。

Format関数については以下記事でも詳しく解説しているので、気になる方は見てみてくださいね!

【VBA】Formatで日付・時刻、数値、文字列の表示設定(和暦、曜日)
更新日 : 2019年4月21日

ワークシート関数Roundメソッドの使い方

次は、ワークシート関数のRoundメソッドを使う方法です。

ワークシート関数のRoundメソッドで四捨五入する場合は、次のように書きます。

Round関数を書き換えると、次のようになります。

サンプルコード:

実行結果:

WorksheetFunctionを先頭につけるだけなので、Round関数をもともと使っていた方におすすめです!

補足:切り上げ・切り捨てが事前に決まっている場合

最後に補足ですが、切り捨て・切り上げを指定する方法もあります。ワークシート関数の「RoundDownメソッド」「RoundUpメソッド」を使う方法なのですが、以下で詳しく解説しています。

気になる方は、こちらも見てみてくださいね!

【ExcelVBA入門】数値の切り上げ・切り捨てをする関数の使い方とは
更新日 : 2019年4月11日

まとめ

今回は、VBAで四捨五入するためのFormat関数、ワークシート関数のRoundメソッドの使い方について解説しましたExcelは数値を扱うのがメインなので、四捨五入する場合、切り捨て・切り上げする場合などケースに応じた方法を覚えておくのがおすすめです!

今回紹介した方法はどちらも簡単に使うことができるので、ぜひ使ってみてくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説