アフィリエイト広告を利用しています
プロフィール
とおるんさんの画像
とおるん
主にWindowsアプリケーション(C#)の開発に携わることが多いかな。C++、Java、DB関連に時々使ってます! 最近は、Kotlin(ことりん)が気になってます((o(´∀`)o))ワクワク
プロフィール
ファン
<< 2018年01月 >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
最新記事
カテゴリーアーカイブ
C#(4)
Excel VBA(1)
Kotlin(1)
月別アーカイブ
人気ブログランキングに参加中!!
人気ブログランキング

広告

posted by fanblog

2017年11月28日

ExcelVBA 四捨五入について

久しぶりにExcelVBAを使って、つまづいた部分をφ(..)メモメモ

VBA上で数値を四捨五入したい場合、Round関数を使います。

■構文
Round(expression [, numdecimalplaces])
 引数expression … 対象の数値
 引数numdecimalplaces … 省略可能。丸めを行う小数点位置

■例文
Range(”A1”).Value = Round(1.23)   ⇨ 1
Range(”A2”).Value = Round(4.56)   ⇨ 4  ※
Range(”A3”).Value = Round(7.89)   ⇨ 8
Range(”A4”).Value = Round(1.23, 0) ⇨ 1
Range(”A5”).Value = Round(1.23, 1) ⇨ 1.2
Range(”A6”).Value = Round(4.56, 0) ⇨ 4  ※
Range(”A7”).Value = Round(7.89, 1) ⇨ 7.8  ※


ん、いくつか想定と違う結果に。。。

これは「銀行型丸め」または「銀行丸め」呼ばれる特殊な四捨五入なんだそうです。
丸めた値が偶数になる丸められます。じゃあ、奇数も含めて丸めるにはどうすればいいのか。

以下のようにWorksheetfunction.Round関数を使います。
Range(”B1”).Value = Worksheetfunction.Round(4.56)   ⇨ 5
Range(”B2”).Value = Worksheetfunction.Round(4.56, 0) ⇨ 5
Range(”B3”).Value = Worksheetfunction.Round(7.89, 1) ⇨ 7.9


四捨五入なんて簡単だろって思ってたら、思わぬ引っ掛けが。今後は気をつけよう。



この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/7016550
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
×

この広告は30日以上新しい記事の更新がないブログに表示されております。