2010年11月9日火曜日

ExcelVBAでの"算術型"Round

ExcelのVBAを使用してデータの編集を行っている。


もともとExcelファイルで貰ったデータでこれをシステムに合うように編集する。
例えばExcelファイルでは千円単位でデータが作成されているが、システム上では円単位なので1000を掛けたりといった編集を行う。


もとのファイルは多少の式も入っており、見ただけではわからないが小数点以下の端数もデータとしてはある。
ただし必要なのは見てわかる数字だけ。隠されている端数は使用しない。
編集する際にはこの端数に注意が必要だ。


例えば以下のようにセルの値を取得した場合、表示されていない端数も取得される。

val = ASheet.Cells(row, col).Value

端数がある状態で、千円単位から円単位にするため1000を掛けたりすると誤差が生まれてしまう。
Excelで表示されている通りに値が取得出来れば良いのだが、出来るかどうかわからない。
とりあえずRoundで対処することにした。


Round関数は以下の2通りを選択出来る。

Excelのワークシート関数Round
"算術型"の丸め処理
VBAのRound関数
"銀行型"の丸め処理

Excelで表示されている通りにするのが目的なのでワークシート関数を使用するのが正しそうだ。



0 件のコメント:

コメントを投稿