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