IsMissing 関数

適用先
Access for Microsoft 365 Access 2021 Access 2019 Access 2016

オプションの Variant 引数がプロシージャに渡されたかどうかを示すブール値を返します。

構文

IsMissing(argname)

必須の argname 引数には、省略可能な Variant プロシージャ引数の名前が含まれています。

解説

IsMissing 関数を使用して、プロシージャの呼び出しでオプションの Variant 引数が指定されているかどうかを検出します。 指定した引数に値が渡されていない場合、IsMissingTrue を返します。それ以外の場合は False を返します引数に対して IsMissingTrue を返した場合、他のコードで不足している引数を使用すると、ユーザー定義エラーが発生する可能性があります。 引数 ParamArrayIsMissing を使用すると、常に False が返されます。 空の ParamArray を検出するには、配列の上限が下限より小さいかどうかをテストします。

IsMissing は単純なデータ型 ( IntegerDouble など) では機能しません。 バリアント型とは異なり、"欠落" フラグ ビットのプロビジョニングがないためです。 このため、型指定された省略可能な引数の構文では、既定値を指定できます。 プロシージャの呼び出し時に引数を省略すると、次の例のように、引数にこの既定値が設定されます。

次の例は、Visual Basic for Applications (VBA) モジュールでのこの関数の使用方法を示しています。 VBA の使用方法の詳細については、[検索] の横にあるドロップダウン リストで [開発者用リファレンス] を選び、検索ボックスに検索する用語を入力します。

Sub MySub(Optional MyVar As String = "specialvalue")
    If MyVar = "specialvalue" Then
        ' MyVar was omitted.
    Else
    ...
End Sub

多くの場合、 If MyVar テストは、ユーザーが関数呼び出しから省略した場合 MyVar 含める値と同じ既定値にすることで、完全に省略できます。 そうすることで、コードがより簡潔に、より効率的になります。

この例では、IsMissing 関数を使用して、オプションの引数がユーザー定義プロシージャに渡されたかどうかを確認します。 引数 Optional には、既定値と、バリアント型 (Variant) 以外の型を指定できるようになった点にご注意ください。

Dim ReturnValue
' The following statements call the user-defined
' function procedure.
ReturnValue = ReturnTwice()    ' Returns Null.
ReturnValue = ReturnTwice(2)    ' Returns 4.
' Function procedure definition.
Function ReturnTwice(Optional A)
    If IsMissing(A) Then
        ' If argument is missing, return a Null.
        ReturnTwice = Null
    Else
        ' If argument is present, return twice the value.
        ReturnTwice = A * 2
    End If
End Function