Access FormatCurrency関数はコントロールパネルの「地域のプロパティ」で定義されている書式を使い、通貨形式の文字列を返す関数です。
■ 構文
FormatCurrency(Expression[,NumDigitsAfterDecimal [,IncludeLeadingDigit
[,UseParensForNegativeNumbers [,GroupDigits]]]])
■ 引数
Expression : (必須) 書式を変換する式を指定します。
NumDigitsAfterDecimal : (省略可) 小数点以下に表示する桁数を表す数値を指定
IncludeLeadingDigit : (省略可) 小数点の左側のゼロを表示するかどうかを表す下記定数を指定
UseParensForNegativeNumbers : (省略可) 負の値をかっこで囲むかどうかを表す下記定数を指定
GroupDigits : (省略可) 「地域のプロパティ」の桁区切り記号を使用し、数値を区切るかどうかを表す下記定数を指定
定数
vbTrue ( -1 真 [True] )
vbFalse ( 0 偽 [False] )
vbUseDefault ( -2 「地域のプロパティ」 の設定値を使用)
■ 戻り値
通貨形式の文字列を返します。
■ 実行後の画面
製品マスターテーブルの単価を表示します。¥マーク付きの3桁区切りで通貨表示されています。
Whileループで全レコードを変換しています。
テキストボックスの空白行の次は、小数点以下2桁表示に設定し変換しています。
コントロールパネルの「地域のオプションのカスタマイズ」で通貨記号を「$」に変更し、FormatCurrencyを実行させてみます。
通貨記号を「$」に変更した結果です。変更されているのが分かります。
■ Access VBA 実行コード
Option Compare Database
Private Sub コマンド0_Click()
Dim n As Long
Dim rs As Recordset
'テキストボックスのクリア
Me!テキスト5 = ""
'単価を表示
Set rs = CurrentDb.OpenRecordset("商品マスター")
Do Until rs.EOF
Me!テキスト5 = Me!テキスト5 & rs("単価") & " → " & FormatCurrency(rs("単価")) & vbNewLine
rs.MoveNext
Loop
'小数点以下2桁で単価を表示
Me!テキスト5 = Me!テキスト5 & vbNewLine & vbNewLine
rs.MoveFirst
Do Until rs.EOF
Me!テキスト5 = Me!テキスト5 & rs("単価") & " → " & FormatCurrency(rs("単価"), 2) & vbNewLine
rs.MoveNext
Loop
rs.MoveFirst
Set rs = Nothing
End Sub