Zwraca wartość logiczną wskazującą, czy opcjonalny argument wariantu został przekazany do procedury.
Składnia
IsMissing(argname)
Wymagany argument argname zawiera nazwę opcjonalnego argumentu procedury typu Variant .
Uwagi
Użyj funkcji IsMissing w celu określenia, czy w wywołaniu procedury podano opcjonalne argumenty typu Variant . Funkcja IsMissing zwraca wartość True , jeśli nie przekazano żadnej wartości dla określonego argumentu; w przeciwnym razie zwraca wartość False. Jeśli funkcja IsMissing zwraca wartość True dla argumentu, użycie tego brakującego argumentu w innym kodzie może spowodować błąd zdefiniowany przez użytkownika. Jeśli funkcja IsMissing jest używana dla argumentu ParamArray , zawsze zwraca wartość False. Aby wykryć pustą tablicę ParamArray, sprawdź, czy górna granica tablicy jest mniejsza niż jej dolna granica.
Uwaga
Funkcja IsMissing nie działa w przypadku prostych typów danych (takich jak liczba całkowita lub podwójna precyzja), ponieważ w przeciwieństwie do wariantów nie zawiera obsługi bitu flagi "brakującej". Z tego powodu składnia typowych argumentów opcjonalnych pozwala określić wartość domyślną. Jeśli argument zostanie pominięty przy wywoływaniu procedury, to argument będzie miał wartość domyślną, jak w poniższym przykładzie:
Uwaga
Poniższe przykłady przedstawiają sposób użycia tej funkcji w module języka Visual Basic for Applications (VBA). Aby uzyskać dodatkowe informacje na temat pracy w języku VBA, wybierz pozycję Dokumentacja dewelopera z listy rozwijanej obok przycisku Wyszukaj i wprowadź odpowiednie terminy w polu wyszukiwania.
Sub MySub(Optional MyVar As String = "specialvalue")
If MyVar = "specialvalue" Then
' MyVar was omitted.
Else
...
End Sub
W wielu przypadkach można całkowicie pominąć test, If MyVar ustawiając wartość domyślną na równą wartości, która ma MyVar być zawierana, jeśli użytkownik pominie ją w wywołaniu funkcji. Dzięki temu kod jest bardziej zwięzły i wydajny.
Przykład
W tym przykładzie użyto funkcji IsMissing do sprawdzenia, czy opcjonalny argument został przekazany do procedury zdefiniowanej przez użytkownika. Należy pamiętać, że argumenty opcjonalne mogą mieć teraz wartości domyślne i typy inne niż wariant.
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