Zwraca wartość logiczną wskazującą, czy opcjonalnyargumentwariant został przekazany do procedura.
Składnia
IsMissing( argname )
Wymagany argument argname zawiera nazwę opcjonalnego argumentu procedury wariant .
Uwagi
Funkcja IsMissing umożliwia wykrywanie, czy podczas wywoływania procedury podano opcjonalne argumenty typu wariant . Funkcja IsMissing zwraca wartość Prawda , jeśli dla określonego argumentu nie została przekazana żadna wartość. w przeciwnym razie zwraca wartość False (Fałsz). Jeśli funkcja IsMissing zwraca wartość Prawda dla argumentu, użycie brakującego argumentu w innym kodzie może spowodować błąd zdefiniowany przez użytkownika. Jeśli argument IsMissing jest używany dla argumentu ParamArray , funkcja zawsze zwraca wartość Fałsz. 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), ponieważ w przeciwieństwie do wariantów nie mają one obsługi bitu flagi "brakującego". W związku z tym składnia wpisanych argumentów opcjonalnych umożliwia określenie wartości domyślnej. Jeśli argument zostanie pominięty podczas wywoływania procedury, wówczas argument będzie miał tę 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ą równą wartości, którą ma zawierać MyVar , jeśli użytkownik pomija ją w wywołaniu funkcji. Dzięki temu Twój kod będzie bardziej zwięzły i wydajniejszy.
Przykład
W tym przykładzie użyto funkcji IsMissing do sprawdzenia, czy do procedury zdefiniowanej przez użytkownika został przekazany opcjonalny argument. Pamiętaj, ż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