動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2401(ビルド17204.20000クイック実行)ベータチャネル
xlsxファイル内部で多くの小数が、小数第16位までのデータを保持していることを記事にしました。
セルに「1.001」から「1.999」を入力するのは、さすがに手作業ではなくExcelマクロを使いました。
[スポンサードリンク]
Decimal型の小数をセルに入力するサンプルマクロ
念のため、そのマクロをご紹介しておきます。
Sub Decimal型の小数をセルに入力する()
Dim i As Long
Dim txt As String
For i = 1 To 999
txt = "1." & Format(i, "000")
Cells(i, "A").Value = CDec(txt)
Next
End Sub
Dim i As Long
Dim txt As String
For i = 1 To 999
txt = "1." & Format(i, "000")
Cells(i, "A").Value = CDec(txt)
Next
End Sub
サンプルマクロで行っている処理
一旦セルに入力された小数は、VBAのDouble扱いになってしまうわけですが、今回はできるだけ誤差を減らしたかったため、Decimal型の小数を作成して、その小数をセルに入力しました。
VBAのCurrency型が使えればもっとシンプルなコードで済んだのですが、VBAのCurrencyをセルに入力しようとした場合、小数第2位までしか入力できない仕様(バグ?)があるため、「"1.001"」といった文字列を変数txtに代入しておいて、
txt = "1." & Format(i, "000")
CDec関数を使って
Cells(i, "A").Value = CDec(txt)
Decimal型の小数を生成してセルに入力しています。
最終更新日時:2024-01-18 17:55
[スポンサードリンク]
Home » Excel VBA Rangeオブジェクト » Decimal型の小数をセルに入力するExcelマクロ