IsMissing 関数IsMissing function

省略可能なVariant 引数プロシージャに渡されたかどうかを示すブール型 (Boolean ) の値を返します。Returns a Boolean value indicating whether an optional Variant argument has been passed to a procedure.

構文Syntax

IsMissing(argname)IsMissing(argname)

必須の __ argname 引数には、オプションの Variant プロシージャ引数の名前が含まれます。The required argname argument contains the name of an optional Variant procedure argument.

注釈Remarks

IsMissing関数を使用して、プロシージャを呼び出す際に省略可能なVariant引数が提供されているかどうかを検出します。Use the IsMissing function to detect whether or not optional Variant arguments have been provided in calling a procedure. 指定した引数に対して値が渡されていない場合、 IsMissingTrueを返します。それ以外の場合は、 Falseを返します。IsMissing returns True if no value has been passed for the specified argument; otherwise, it returns False.

IsMissingが引数に対してTrueを返す場合、その他のコードで不足している引数を使用すると、ユーザー定義エラーが発生する可能性があります。If IsMissing returns True for an argument, use of the missing argument in other code may cause a user-defined error.

IsMissingParamArray引数に対して使用されている場合は、常にFalseを返します。If IsMissing is used on a ParamArray argument, it always returns False. 空のParamArrayを検出するには、配列の上限が下限よりも小さいかどうかをテストします。To detect an empty ParamArray, test to see if the array's upper bound is less than its lower bound.

IsMissingは、 variantとは異なり、"missing" フラグビットをプロビジョニングしていないため、単純なデータ型 ( IntegerDoubleなど) では機能しません。IsMissing does not work on simple data types (such as Integer or Double) because, unlike Variants, they don't have a provision for a "missing" flag bit. このため、省略可能な引数の構文を使用して、既定値を指定することができます。Because of this, the syntax for typed optional arguments allows you to specify a default value. プロシージャが呼び出されたときに引数を省略すると、次の例に示すように、引数の既定値は次のようになります。If the argument is omitted when the procedure is called, the argument will have this default value, as in the following example.

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

多くの場合、このIf MyVarテストを完全に省略するには、ユーザーが関数呼び出しからそのMyVar値を省略した場合に、その値を既定値と等しくする必要があります。In many cases you can omit the If MyVar test entirely by making the default value equal to the value you want MyVar to contain if the user omits it from the function call. これにより、より簡潔で、効率的なコードにできます。This makes your code more concise and efficient.

Example

この例では、IsMissing 関数を使用して、オプションの引数がユーザー定義プロシージャに渡されたかを確認します。This example uses the IsMissing function to check if an optional argument has been passed to a user-defined procedure. これにより、オプションの引数は、Variant 以外の既定値と型を持つことができることに注意してください。Note that Optional arguments can now have default values and types other than 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

関連項目See also

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.