【ExcelVBA・マクロ】IsNullの使い方|Null値を判定する方法とEmptyとの違い【コピペOK】

IsNullの使い方 ExcelVBA

VBAでデータ処理をしていると、次のようなことはありませんか?

  • Null値を判定したい
  • データベース連携で値が取得できない
  • Emptyや””との違いが分からない

このような場合は、IsNull関数を使うことで解決できます。
「値が存在しない(Null)」状態を判定できる関数です。

この記事では、IsNullの基本から実務での使い方、IsEmptyとの違いまで分かりやすく解説します。


スポンサーリンク
スポンサーリンク

この記事でできること

  • Null値の判定ができる
  • IsEmptyとの違いが分かる
  • データ処理での安全なコードが書ける

基本:IsNull関数の使い方

基本構文はこちらです。

IsNull(値)

例:

MsgBox IsNull(Null)

→ True


戻り値の意味

結果意味
TrueNull(値が存在しない)
False値がある

基本例:Nullチェック

Option Explicit

Sub CheckNull()

    Dim val As Variant

    val = Null

    If IsNull(val) Then
        MsgBox "Nullです"
    Else
        MsgBox "値があります"
    End If

End Sub

Nullとは?(重要)

Nullは「値が存在しない状態」を意味します。

よくある誤解:

  • “”(空文字)とは違う
  • 0とも違う
  • Emptyとも違う

IsNullとIsEmptyの違い

関数判定内容
IsNullNull(値が存在しない)
IsEmpty未初期化

比較例

Dim val As Variant

val = Null
MsgBox IsNull(val)   ' True

val = ""
MsgBox IsNull(val)   ' False

Nullが発生するケース

  • データベース(Access・SQL)
  • ADO/DAO処理
  • 外部データ取得

通常のExcel処理ではあまり出ませんが、外部連携で重要です。


Nullを安全に扱う方法

Nullのまま処理するとエラーになります。

Dim val As Variant

val = Null

If Not IsNull(val) Then
    MsgBox val
Else
    MsgBox "Nullのため処理スキップ"
End If

Nz関数の代替(Null→値変換)

VBAにはNz関数がないため、自作で対応します。

Function Nz(val As Variant, Optional defaultVal As Variant = 0)

    If IsNull(val) Then
        Nz = defaultVal
    Else
        Nz = val
    End If

End Function

使用例:

MsgBox Nz(Null, 0)

実務での活用例

  • データベース値のチェック
  • NULL回避処理
  • データクレンジング
  • エラー防止

DB連携では必須の知識です。


よくあるエラーと対処法

① Nullで計算するとエラーになる

事前にIsNullでチェックしてください。

② 空文字と混同する

“”とNullは別物です。

③ IsEmptyと間違える

用途が違うため使い分けが必要です。

④ コードは正しいのにエラーになる

コピー時に全角文字や特殊文字が混ざることがあります。
その場合は該当行を手入力し直すと解決することがあります。


まとめ

  • IsNullはNull値を判定する関数
  • Emptyや空文字とは別物
  • DB連携では必須
  • エラー防止に重要

IsNullを理解すると、データ処理の安全性が大きく向上します。
特にデータベース連携では必須の知識なので、しっかり覚えておきましょう。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

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