VBA 単精度浮動小数点データ型 (Dim Variable)
In this Article
単精度浮動小数点(Single)データ型
VBAの単精度浮動小数点(Single)データ型は、小数点以下の数値を格納するために使用されます。 負の値では-3.4028235E+38から-1.401298E-45まで、正の値では1.401298E-45から3.4028235E+38まで格納することができます。
Single変数を宣言するには、Dimステートメント(Dimensionの略)を使用します。
Dim sngA as Single
そして、変数に値を代入するには、単に等号を使用します。
sngA = 3658.25
これをプロシージャに書くと、次のようになります。
Sub sngExample()
'Single変数の宣言
Dim sngA as Single
'変数に値を入れる
sngA = 3658.25
'メッセージボックスを表示
MsgBox sngA
End Sub
上記のコードを実行すると、以下のようなメッセージボックスが表示されます。
倍精度浮動小数点(Double)データ型
倍精度浮動小数点(Double)データ型はSingleデータ型を長くしただけのデータ型です。 このため、プロシージャで使用する場合、Singleデータ型は小数点以下4桁に丸めるのに対し、Doubleデータ型は小数点以下12桁に丸めるため、丸め方に影響を与える可能性があります。 もし、小数点以下が4桁以上必要な場合は、Doubleデータ型を使用することができます。
整数(Int)データ型または長整数(Long)データ型
小数点以下の桁数が必要ない場合、Intデータ型またはLongデータ型を使用します。
Dim intA as Integer
Dim lngB as Long
モジュールレベルまたはグローバルレベルでの Single 変数の宣言
これまでの例では、プロシージャの中でSingle変数を宣言しました。プロシージャで宣言した変数は、そのプロシージャ内でのみ使用することができます。
代わりに、モジュールレベルまたはグローバルレベルでSingle変数を宣言することもできます。
モジュールレベル
モジュールレベルの変数は、コードモジュールの先頭でDimステートメントを使用して宣言します。
これらの変数は、そのコードモジュール内の任意のプロシージャで使用することができます。
グローバルレベル
グローバルレベルの変数もコードモジュールの先頭で宣言されます。しかし、Dimステートメントを使用する代わりに、Publicステートメントを使用して、Single変数がVBAプロジェクト全体で使用可能であることを示します。
Public SngA as Single
モジュールレベルでSingle変数を宣言し、それを別のモジュールで使用しようとすると、エラーが発生します。
しかし、Publicキーワードを使ってSingle変数を宣言していれば、エラーは発生せず、プロシージャは完全に実行されます。
Singleデータ型を文字列として書式を整える
例えば、通貨記号を表示し、小数点以下2桁に丸めるなど、1つのデータ型を文字列にフォーマットしたい場合があります。
これを実現するには、Format関数を使用します。
次の手順で行います。
Sub TestSingleToCurrencyString()
文字列変数を宣言
Dim strMoney As String
'Singleを宣言し、値を入力する
Dim sngValue As Single
sngValue = 44055.256
'Singleを小数点以下2桁の通貨記号を持つ文字列に変換する
strMoney = Format(sngValue , "$#,##0.00")
'結果を表示する
MsgBox strMoney
End Sub
結果は以下のようになります。
同様に、電話番号をフォーマットして表示したい場合もあります。 この手順で
Sub TestSingleToPhone()
'文字列変数を宣言
Dim strPhone As String
'Singleを宣言し、値を入力する
Dim sglValue As single
sglValue = 555968541
'Singleを電話番号形式の文字列に変換する
strPhone = Format(sglValue , "(000)-000 0000")
'結果を表示する
MsgBox strPhone
End Sub
結果は以下のようになります。