IsObject関数:変数がオブジェクトを表しているかどうかを確認する
IsObject 関数は Excel VBA で用意されている関数の一つで、引数に指定した変数がオブジェクトを表しているかどうかを確認します。ここでは Excel VBA における IsObject 関数の使い方について解説します。
(Last modified: )
IsObject関数の定義と使い方
IsObject
関数は引数に指定した変数がオブジェクトを表す値かどうかを確認し、「True」または「False」の値を返します。
引数に 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
関数を使って変数がオブジェクトを表すものかどうかを確認し、数値を表している場合は「True」、そうでない場合は「False」を返します。特に Variant 型の変数の場合は、格納されているのがオブジェクトがどうかで結果が異なります。
-- --
Excel VBA における IsObject 関数の使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。