データ型が宣言されていないVBAのマクロを最適化しているため、コンパイラによってすべてが不細工にバリアントとして扱われました。科学的な測定を扱っているので、精度が必要です。 「Dim decAsdf as Decimal」を宣言するにはどうすればよいですか(そうではなく、適切な方法)。
変数をDecimal
として宣言することはできません-Variant
を使用する必要があります(ただし、CDec
を使用してDecimal
型を設定できます)。
最適な方法は、必要な精度に応じて、変数をSingle
またはDouble
として宣言することです。データ型Single
は4バイトを使用し、範囲は-3.402823E38〜1.401298E45です。 Double
は8バイトを使用します。
次のように宣言できます。
Dim decAsdf as Single
または
Dim decAsdf as Double
計算後の変数の値を含むメッセージボックスを表示する例を次に示します。あなたがしなければならないのは、それをモジュールに入れて実行することです。
Sub doubleDataTypeExample()
Dim doubleTest As Double
doubleTest = 0.0000045 * 0.005 * 0.01
MsgBox "doubleTest = " & doubleTest
End Sub