Emptyの概要
| 変数が未初期化かどうかを判定する VBAの予約語 | ||
|
Empty 概要 Empty は、VBAの わかりやすく説明 Variant型の変数が、値を設定されていない状態であることを示す特別な値。 |
||
|
Emptyを使った基本的な判定方法
以下の例では、Empty の状態を IsEmpty 関数を使って判定します。
Sub TestEmpty()
Dim vData As Variant
If IsEmpty(vData) Then
MsgBox "vData は未初期化(Empty)です。"
Else
MsgBox "vData には値が設定されています。"
End If
End Sub
解説:
Dim vData As Variant: 変数vDataをVariant型として宣言。- 何も代入しない状態では
Emptyとなる。 IsEmpty(vData)で変数がEmptyかどうかを判定。
EmptyとNull、””(空文字)との違い
Empty、Null、空文字(””)はそれぞれ異なる概念です。
Sub CompareEmptyNull()
Dim vEmpty As Variant
Dim vNull As Variant
Dim vString As String
vNull = Null
vString = ""
MsgBox "IsEmpty(vEmpty): " & IsEmpty(vEmpty) & vbCrLf & _
"IsNull(vNull): " & IsNull(vNull) & vbCrLf & _
"vString = """": " & (vString = "")
End Sub
解説:
Empty: 変数が未初期化の状態(IsEmptyで判定)。Null: データベースで使用される「値なし」の状態(IsNullで判定)。"": 空の文字列(通常の比較演算子で判定)。
Excel VBAでのEmptyの活用
Excelのセルの値が未入力かどうかを判定する例です。
Sub CheckEmptyCell()
Dim cellValue As Variant
cellValue = Range("A1").Value
If IsEmpty(cellValue) Then
MsgBox "セルA1は未入力です。"
Else
MsgBox "セルA1の値: " & cellValue
End If
End Sub
解説:
- セルA1の値を取得し、変数
cellValueに代入。 IsEmpty(cellValue)で未入力かどうかを判定。
Emptyの注意事項
- Empty は Variant 型でのみ使用可能: 他のデータ型では適用されない。
- 数値や文字列に代入すると Empty ではなくなる: 一度でも値を代入すると Empty には戻せない。
- データベースの Null とは異なる:
Emptyは未初期化、Nullは「値なし」を意味する。
よくある質問
- Q: Empty を数値型の変数に適用できますか?
- A: いいえ。Empty は
Variant型の変数でのみ有効です。 - Q: 一度値を設定した後に Empty に戻せますか?
- A: いいえ。Variant 型の変数は、一度値を代入すると Empty に戻せません。
- Q: IsEmpty で文字列の空白(””)を判定できますか?
- A: いいえ。空文字(””)は Empty ではないため、
IsEmptyではなく= ""で判定します。
まとめ
- Empty は
Variant型の変数が未初期化であることを示す特別な値。 IsEmpty関数を使って Empty かどうかを判定できる。- Excel VBAでセルの未入力チェックや変数の初期化判定に活用できる。
- 一度値を代入すると Empty には戻せないため注意が必要。