IsMissing関数:プロシージャのオプションの引数に値が指定されたかどうかを確認する

IsMissing 関数は Excel VBA で用意されている関数の一つで、プロシージャを呼び出すときにオプションの引数に値が指定されたかどうかを確認します。ここでは Excel VBA における IsMissing 関数の使い方について解説します。

(Last modified: )

IsMissing関数の定義と使い方

IsMissing 関数は、プロシージャが呼び出されたときにプロシージャのオプション引数に引数に指定されているかどうかを確認し、「True」または「False」の値を返します。

IsMissing(argname)

引数には調べるプロシージャのオプション引数名を指定します。引数に値が指定されずにプロシージャが呼び出されているときは「True」、引数が指定されている場合は「False」が戻り値として返されます。

次の例を見てください。

Function RetDouble(Optional num As Variant)
    If IsMissing(num) Then
        RetValue = 0
    Else
        RetValue = num * 2
    End If
End Function

Function プロシージャの引数にオプション引数を設定しています。このプロシージャを呼び出すときに、引数を指定して呼び出した場合は IsMissing 関数は「False」を返しますが、引数を省略して呼び出した場合は「True」を返します。具体的な例はこのあとのサンプルコードを参照されてください。なおオプション引数にデフォルト値が設定していてもしていなくても結果は同じになります。

サンプルコード

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

Option Explicit

Sub IsMissing関数()
    Debug.Print RetDouble(10)
    Debug.Print RetDouble
End Sub

Private Function RetDouble(Optional num As Variant)
    If IsMissing(num) Then
        RetDouble = 0
    Else
        RetDouble = num * 2
    End If
End Function

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

オプション引数が設定されたプロシージャを引数を指定した場合と指定しない場合でそれぞれ呼び出しています。プロシージャの中では IsMissing 関数を使い、オプション引数が指定されたかどうかを判定し、指定されている場合は 2 倍にした値を返し、指定されていなかった場合は 0 を返しています。

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

-- --

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

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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