『Excel VBA 表計算とプログラミング学習サイト』では、アフィリエイトプログラムを利用して商品を紹介しています。

【VBA】Currency(通貨型変数)

この記事では VBA の通貨型変数 Currency について解説します。

【VBA】Currency

VBA の Currency は整数部 15 桁、小数部 4 桁の固定小数点型変数です。扱える範囲は
 
 -922,337,203,685,477.5808 ~ 922,337,203,685,477.5807
 
となっています。内部的には 10000 倍されて 19 桁の整数として記憶されます。Currency には有効数字 19 桁の数値を入れることができて、また計算結果も 19 桁の数として処理されますが、セルやイミディエイトウィンドウに出力すると 15 桁の数値に丸められてしまいます。通貨型変数を表示形式が [標準] となっているセルに出力すると、表示形式が [通貨] になって数値の前に ¥マークがつきます。さっそく試してみましょう。

'[VBA]'B2セルに10000円を入力するサブルーチン
Sub Currency_Test_1()
  Dim x As Currency
  x = 10000
  Range("B2").Value = x
End Sub

Currency_Test_1() を実行すると、セル B2 に「¥10000」が入力されます。

次は通貨型変数を使って、12 の 12 乗という大きな値を計算させてみましょう。

'[VBA] 12の12乗の計算
Sub Currency_Test_2()
  Dim x As Currency
  x = 12 ^ 12
  Debug.Print "x:" & x
  For i = 1 To 12
    x = x / 12
  Next i
  Debug.Print "x/(12^12):" & x
End Sub

'Currency_Test_2()の実行結果:
'x:8916100448256
'x/(12^12):1

Currency_Test_2() を実行すると最初の行に 8916100448256 という値が表示されます。疑り深い人のために(?)検算として、この値を 12 で 12 回割って表示させています。きっちり「1」という値が表示されます。

コメント