Home » Excel VBA Rangeオブジェクト » Decimal型の小数をセルに入力するExcelマクロ

Decimal型の小数をセルに入力するExcelマクロ

動作検証バージョン: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

サンプルマクロで行っている処理

一旦セルに入力された小数は、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マクロ

「Excel VBA Rangeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.