今回は 通貨型変数 (Currency) について解説します。
変数のデータ型⑥ 通貨型変数 (Currency)
通貨型変数 (Currency) は整数部 15 桁、小数部 4 桁の固定小数点型変数です。
扱える範囲は
-922,337,203,685,477.5808 ~ 922,337,203,685,477.5807
となっています。内部的には 10000 倍されて 19 桁の整数として記憶されます。通貨型変数には有効数字 19 桁の数値を入れることができて、また計算結果も 19 桁の数として処理されますが、セルやイミディエイトウィンドウに出力すると 15 桁の数値に丸められてしまいます。通貨型変数を表示形式が [標準] となっているセルに出力すると、表示形式が [通貨] になって数値の前に ¥マークがつきます。さっそく試してみましょう。
Sub CurrencyTest1()
Dim x As Currency
x = 10000
Range("B2").Value = x
End Sub
マクロを実行すると下図のように金額が入力されますよ。
次は通貨型変数を使って 12 の 12 乗という大きな値を計算させてみましょう。
Sub CurrencyTest()
Dim x As Currency
x = 12 ^ 12
Debug.Print "x = " & x
'x を 12 で 12 回割ります
For i = 1 To 12
x = x / 12
Next i
Debug.Print "x/(12^12) = " & x
End Sub
マクロを実行すると最初の行に 8916100448256 という値が表示されます。「ほんまかいな? 桁落ちとかしてるんとちゃう?」という疑り深い人のために検算として、この値を 12 で 12 回割って表示させています。きっちり「1」という値が表示されます。