VBAのデータ型ごとのデフォルト値

VBAでは、変数を宣言した際に 初期値(デフォルト値) が自動的に設定されます。
このデフォルト値は データ型ごとに異なり、適切に理解しておくことで意図しないバグを防ぐ ことができます。


1. デフォルト値とは?

デフォルト値とは、変数を宣言しただけで値を代入しなかった場合に、VBAが自動的にセットする値 のことです。
例えば、Integer 型の変数を宣言すると、自動的に 0 になります。

Sub DefaultValueTest()
Dim i As Integer '変数iを宣言(値を代入していない)
MsgBox i '0 が表示される
End Sub

2. データ型ごとのデフォルト値一覧

データ型デフォルト値説明
Integer0整数型
Long0大きな整数
Single0単精度浮動小数点数
Double0倍精度浮動小数点数
Currency0通貨型
BooleanFalse論理型(真偽値)
String""(空文字)文字列型
VariantEmptyまだ値が設定されていない状態
ObjectNothingオブジェクト型

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の変数には データ型ごとに決まったデフォルト値 がある
  • IntegerLongDouble などの数値型は 0
  • Boolean は False、 String は ""(空文字)
  • Date の初期値は 1899/12/30(シリアル値0)
  • Variant のデフォルト値は EmptyObject は Nothing

デフォルト値を理解することで、意図しないバグを防ぐことができます!

コメント

タイトルとURLをコピーしました