Gibt einen booleschen Wert zurück, der angibt, ob ein optionaler Variant -Argument an einen Prozedur übergeben wurde.
Syntax
IsMissing( Argumentname )
Das erforderliche Argumentname-Argument enthält den Namen eines optionalen Variant-Prozedurarguments.
Hinweise
Verwenden Sie die IsMissing-Funktion , um zu ermitteln, ob beim Aufrufen einer Prozedur optionale Variant-Argumente bereitgestellt wurden. IsMissing gibt True zurück, wenn für das angegebene Argument kein Wert übergeben wurde. Andernfalls wird False zurückgegeben. Wenn IsMissingtrue für ein Argument zurückgibt, kann die Verwendung des fehlenden Arguments in einem anderen Code zu einem benutzerdefinierten Fehler führen. Wenn IsMissing für ein ParamArray-Argument verwendet wird, wird immer False zurückgegeben. Um ein leeres ParamArray zu erkennen, testen Sie, ob die obere Grenze des Arrays kleiner als die untere Grenze ist.
Hinweis: IsMissing funktioniert nicht bei einfachen Datentypen (z. B. Integer oder Double), da sie im Gegensatz zu Varianten nicht über eine Bereitstellung für ein "fehlendes" Flagbit verfügen. Daher ermöglicht Ihnen die Syntax für eingegebene optionale Argumente die Angabe eines Standardwerts. Wenn das Argument beim Aufruf der Prozedur weggelassen wird, nimmt das Argument diesen Standardwert an, wie im folgenden Beispiel gezeigt:
Hinweis: Die folgenden Beispiele zeigen die Verwendung dieser Funktion in einem VBA-Modul (Visual Basic for Applications). Wenn Sie weitere Informationen zum Arbeiten mit VBA wünschen, wählen Sie Entwicklerreferenz in der Dropdownliste neben Suchen aus, und geben Sie einen oder mehrere Begriffe in das Suchfeld ein.
Sub MySub(Optional MyVar As String = "specialvalue")
If MyVar = "specialvalue" Then ' MyVar was omitted. Else ... End Sub
In vielen Fällen können Sie den If MyVar-Test komplett weglassen, indem Sie als Standardwert den gleichen Wert wählen, den MyVar enthalten soll, wenn der Benutzer ihn im Funktionsaufruf auslässt. Dadurch wird der Code präziser und effizienter.
Beispiel
In diesem Beispiel wird mithilfe der IsMissing-Funktion überprüft, ob ein optionales Argument an eine benutzerdefinierte Prozedur übergeben wurde. Beachten Sie, dass Argumente vom Typ Optional jetzt Standardwerte und andere Typen als Variant aufweisen können.
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