プログラマ38の日記

主にプログラムメモです。

Excel: VBAのround関数ではまったこと

まとまった計算をするのにVBAは便利なので、ちょっとした時に書きます。

 

ですが、がっつりVBAで開発すること自体は少ないので細かなところではまりました。

 

はまったのは round 関数

数式のround関数はround_half_upなのですが、

VBAのround関数はround_half_evenなのです。

 

VBA内で数式のroundと同じ計算をしたい場合は、WorksheetFunction.Roundを使うことになります。数式の間隔で関数を使う場合はWorksheetFunctionを常に使っていったほうがいいのかなと思いました。

[計算結果]

f:id:crmprogrammer38:20170302170608p:plain

vbaのroundは、roundする桁の左側の数値が偶数の場合は切り下げになります。

意外と気が付きずらいのがさらにつらいです。