IsObject関数:変数がオブジェクトを表しているかどうかを確認する

IsObject 関数は Excel VBA で用意されている関数の一つで、引数に指定した変数がオブジェクトを表しているかどうかを確認します。ここでは Excel VBA における IsObject 関数の使い方について解説します。

(Last modified: )

IsObject関数の定義と使い方

IsObject 関数は引数に指定した変数がオブジェクトを表す値かどうかを確認し、「True」または「False」の値を返します。

IsObject(identifier)

引数に Variant 型の変数を指定します。変数が Object 型であったり Variant 型の場合で変数にオブジェクトが格納されている場合は「True」、そうでなかった場合は「False」が戻り値として返されます。また変数に Nothing が設定されている場合は「True」を返します。

次の例を見てください。

Dim ws As Worksheet
Dim i As Integer
Dim v As Variant

Debug.Print IsObject(ws)  'True
Debug.Print IsObject(i)   'False
Debug.Print IsObject(v)   'False

Set v = Range("C2")
Debug.Print IsObject(v)   'True

Set v = Nothing
Debug.Print IsObject(v)   'True

データ型としてオブジェクトを指定した変数は「True」となりますが、整数などの変数や Variant 型の変数でも初期化前の変数の場合は「False」となります。 Variant 型の変数にオブジェクトを設定した場合や Nothing を設定した場合は「True」となります。

サンプルコード

それでは簡単なサンプルを作成して試してみます。

Option Explicit

Sub IsNumeric関数()
    Dim ws As Worksheet
    Dim i As Integer
    Dim v As Variant

    Debug.Print IsObject(ws)
    Debug.Print IsObject(i)
    Debug.Print IsObject(v)

    v = "Hello"
    Debug.Print IsObject(v)

    Set v = Range("C2")
    Debug.Print IsObject(v)

    Set v = Nothing
    Debug.Print IsObject(v)
End Sub

IsObject関数の定義と使い方(1)

このプログラムを実行すると IsObject 関数を使って変数がオブジェクトを表すものかどうかを確認し、数値を表している場合は「True」、そうでない場合は「False」を返します。特に Variant 型の変数の場合は、格納されているのがオブジェクトがどうかで結果が異なります。

IsObject関数の定義と使い方(2)

-- --

Excel VBA における IsObject 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。