この記事では 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」という値が表示されます。
コメント
【ChatGPT解説】VBAのCurrency
講師:こんにちは!VBAのCurrency型についてお話しましょう。Currency型は、貨幣の金額や金銭的な値を扱うためのデータ型です。ちなみに、あなたはお買い物やお小遣いの管理にどのようにVBAを使いたいですか?
生徒:先日、お小遣い管理アプリを作ってみたいと思ったんです!お金の計算や残高の管理がスムーズにできるようにしたいんですよ。
講師:それは素晴らしいアイデアですね!Currency型は、お金の計算や金額の正確な表現に適しています。たとえば、小数点以下の桁数が重要な場合や、通貨の変換を行いたい場合に役立ちます。
生徒:そうですね、お買い物の金額計算などで小数点以下が必要になるかもしれません。Currency型の使い方を教えていただけますか?
講師:もちろんです!Currency型の変数を宣言するには、次のように書きます:
このようにすると、変数myMoneyがCurrency型の変数として宣言されます。これにより、金額や貨幣データを格納するためのコンテナが作られます。
生徒:なるほど、変数にCurrency型を指定するんですね。それでは、具体的な使い方を教えてください。
講師:もちろんです。Currency型の変数を使って、金額の計算や表示を行うことができます。例えば、次のようにして金額を代入し、計算を行ってみましょう:
この例では、price変数に1つの商品の価格を、quantity変数にその商品の個数を代入しています。そして、total変数に価格と個数を掛けた合計金額を計算し、メッセージボックスに表示しています。
生徒:なるほど、Currency型を使うことで正確な金額の計算ができるんですね。すごいです!
講師:そうですね!Currency型は小数点以下の桁数にも対応しているため、お金に関連する処理には非常に便利です。お買い物アプリの作成に役立ててみてください!
生徒:ありがとうございます!お買い物アプリ作りがますます楽しみになりました。