IsMissing 関数

重要:  この記事は機械翻訳されています。機械翻訳についての「免責事項」をお読みください。この記事の英語版を参照するには、ここをクリックしてください。

手続きに省略可能なバリアント型 (Variant)引数 の引数が渡されたかどうかを、ブール型 (Boolean) の値で返します。

構文

IsMissing( argname )

argname は必須の引数です。プロシージャの省略可能なバリアント型 (Variant) の引数の名前を指定します。

解説

IsMissing 関数は、プロシージャを呼び出すときに省略可能なバリアント型 (Variant) の引数がプロシージャに渡されたかどうかを調べるために使用します。IsMissing は、指定した引数が渡されていない場合は、真 (True) を返します。それ以外は、偽 (False) を返します。IsMissing 関数がある引数に対して真 (True) を返すときに、その引数を他のコード内で使うと、ユーザー定義エラーが発生することがあります。引数 ParamArray に対して IsMissing が使用されている場合は、常に偽 (False) が返されます。空の ParamArray を検出するには、配列の上限が下限よりも小さいかどうかを確認するためのテストを行います。

注: IsMissing 関数は、整数型 (Integer)倍精度浮動小数点型 (Double) などの単純なデータ型に対しては無効です。これらのデータ型には、バリアント型 (Variant) の場合とは異なり、引数が指定されたかどうかを判断するためのフラグが用意されていないためです。このため、省略可能な引数を入力するための構文では、既定値を指定することができます。プロシージャの呼び出し時に引数が省略された場合は、下のコード例のように、引数の値はこの既定値となります。

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

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

多くの場合は、関数呼び出しでユーザーが指定を省略した場合に MyVar に使用する値と既定値を同じにすることにより、If 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

注: 機械翻訳についての免責事項: この記事の翻訳はコンピューター システムによって行われており、人間の手は加えられていません。マイクロソフトでは、英語を話さないユーザーがマイクロソフトの製品、サービス、テクノロジに関するコンテンツを理解するのに役立てるため、こうした機械翻訳を提供しています。記事は機械翻訳されているため、用語、構文、文法などに誤りがある場合があります。

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×