VBAでは、変数を宣言した際に 初期値(デフォルト値) が自動的に設定されます。
このデフォルト値は データ型ごとに異なり、適切に理解しておくことで意図しないバグを防ぐ ことができます。
目次
1. デフォルト値とは?
デフォルト値とは、変数を宣言しただけで値を代入しなかった場合に、VBAが自動的にセットする値 のことです。
例えば、Integer
型の変数を宣言すると、自動的に 0
になります。
Sub DefaultValueTest()
Dim i As Integer '変数iを宣言(値を代入していない)
MsgBox i '0 が表示される
End Sub
2. データ型ごとのデフォルト値一覧
データ型 | デフォルト値 | 説明 |
---|---|---|
Integer | 0 | 整数型 |
Long | 0 | 大きな整数 |
Single | 0 | 単精度浮動小数点数 |
Double | 0 | 倍精度浮動小数点数 |
Currency | 0 | 通貨型 |
Boolean | False | 論理型(真偽値) |
String | "" (空文字) | 文字列型 |
Variant | Empty | まだ値が設定されていない状態 |
Object | Nothing | オブジェクト型 |
3. 各データ型のデフォルト値の動作確認
デフォルト値を確認するには、以下のようなコードを使います。
Sub CheckDefaultValues()
Dim i As Integer
Dim l As Long
Dim s As Single
Dim d As Double
Dim c As Currency
Dim b As Boolean
Dim str As String
Dim v As Variant
Dim obj As Object
Debug.Print "Integer: " & i
Debug.Print "Long: " & l
Debug.Print "Single: " & s
Debug.Print "Double: " & d
Debug.Print "Currency: " & c
Debug.Print "Boolean: " & b
Debug.Print "String: " & "[" & str & "]"
Debug.Print "Variant: " & v
Debug.Print "Object: " & obj
End Sub
実行するとイミディエイトウィンドウに以下の結果が表示されます。
Integer: 0
Long: 0
Single: 0
Double: 0
Currency: 0
Boolean: False
String: []
Variant:
Object: Nothing
4. デフォルト値に関する注意点
(1) String型のデフォルト値は ""(空文字)
Dim str As String
MsgBox "値: [" & str & "]" '値: [](空文字が表示される)
String
型は Null
ではなく、空文字 (""
) がセットされる
(2) Variant型のデフォルト値は Empty
Dim v As Variant
If IsEmpty(v) Then
MsgBox "VariantはEmptyの状態です。"
End If
Empty
は 値がセットされていない状態 を意味し、 0
や ""
とは異なる
(3) Object型のデフォルト値は Nothing
Dim obj As Object
If obj Is Nothing Then
MsgBox "ObjectはNothingです。"
End If
Nothing
は、オブジェクトが何も参照していない状態 を示す
5. まとめ
- VBAの変数には データ型ごとに決まったデフォルト値 がある
Integer
,Long
,Double
などの数値型は0
Boolean
はFalse
、String
は""
(空文字)Date
の初期値は1899/12/30
(シリアル値0)Variant
のデフォルト値はEmpty
、Object
はNothing
デフォルト値を理解することで、意図しないバグを防ぐことができます!
コメント