VBA 単精度浮動小数点データ型 (Dim Variable)

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 7月 28, 2022

単精度浮動小数点(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

上記のコードを実行すると、以下のようなメッセージボックスが表示されます。

vba-double-declare

倍精度浮動小数点(Double)データ型

倍精度浮動小数点(Double)データ型はSingleデータ型を長くしただけのデータ型です。 このため、プロシージャで使用する場合、Singleデータ型は小数点以下4桁に丸めるのに対し、Doubleデータ型は小数点以下12桁に丸めるため、丸め方に影響を与える可能性があります。 もし、小数点以下が4桁以上必要な場合は、Doubleデータ型を使用することができます。

vba double single 単精度浮動小数点 倍精度浮動小数点

整数(Int)データ型または長整数(Long)データ型

小数点以下の桁数が必要ない場合、Intデータ型またはLongデータ型を使用します。

Dim intA as Integer
Dim lngB as Long

モジュールレベルまたはグローバルレベルでの Single 変数の宣言

これまでの例では、プロシージャの中でSingle変数を宣言しました。プロシージャで宣言した変数は、そのプロシージャ内でのみ使用することができます。

vba single declare local 単精度浮動小数点

代わりに、モジュールレベルまたはグローバルレベルでSingle変数を宣言することもできます。

モジュールレベル

モジュールレベルの変数は、コードモジュールの先頭でDimステートメントを使用して宣言します。

vba single declare module 単精度浮動小数点

これらの変数は、そのコードモジュール内の任意のプロシージャで使用することができます。

グローバルレベル

グローバルレベルの変数もコードモジュールの先頭で宣言されます。しかし、Dimステートメントを使用する代わりに、Publicステートメントを使用して、Single変数がVBAプロジェクト全体で使用可能であることを示します。

Public SngA as Single

vba single declare public 単精度浮動小数点

モジュールレベルでSingle変数を宣言し、それを別のモジュールで使用しようとすると、エラーが発生します。

vba single declare error 単精度浮動小数点

しかし、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

結果は以下のようになります。

vba double to string

同様に、電話番号をフォーマットして表示したい場合もあります。 この手順で

Sub TestSingleToPhone()
'文字列変数を宣言
Dim strPhone As String
'Singleを宣言し、値を入力する
Dim sglValue As single 
sglValue = 555968541
'Singleを電話番号形式の文字列に変換する
strPhone = Format(sglValue , "(000)-000 0000")
'結果を表示する
MsgBox strPhone
End Sub

結果は以下のようになります。

vba double string phone

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples