VBAコードを介してExcelワークブックにダンプされたデータがあるAccessデータベースがあります。一部の値には、最も近い 10 分の 1 に丸めたい長い小数があります。値が整数の場合、値を 10 分の 1 に丸めたくない (つまり、45 を 45.0 に丸めたくない) ため、次のコードを使用しています。
If Fix(rstTmpRegularAndOvertimeHours!regularhours) = rstTmpRegularAndOvertimeHours!regularhours Then
objWS.cells(intRowCount, 6).Value = rstTmpRegularAndOvertimeHours!regularhours
Else
objWS.cells(intRowCount, 6).Value = Round(rstTmpRegularAndOvertimeHours!regularhours, 1)
End If
丸められた値がセルに表示されますが、実際に入力される値は丸められていない値です。たとえば、値は 4.19999980926513 で、このコードを実行すると値 4.2 がセルに表示されますが、セルをクリックすると、実際の値はまだ 4.19999980926513 であることがわかります。そして、次のコード行が実行されると:
With objWS.PageSetup
.Orientation = 2
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
セルが展開されて値全体が表示され、再び 4.19999980926513 が表示されます。私は他の場所で同様のコードを使用しており、スプレッドシートに挿入された正しい丸められた値を取得しています。何か案は?