Функция IsMissing

Возвращает логическое значение, указывающее, передан ли необязательный аргументVariantв процедуру.

Синтаксис

IsMissing(argname)

Обязательный аргумент argname содержит имя необязательного аргумента процедуры Variant.

Замечания

Используйте функцию IsMissing, чтобы определить, предоставляются ли необязательные аргументы Variant в вызывающей процедуре. Функция IsMissing возвращает значение True, если для указанного аргумента не было передано ни одного значения; в противном случае она возвращает значение False.

Если IsMissing возвращает для аргумента значение True, использование отсутствующего аргумента в другом коде может вызвать ошибку, определенную пользователем.

Если функция IsMissing используется для аргумента ParamArray, она всегда возвращает значение False. Чтобы обнаружить пустой аргумент ParamArray, проверьте, не является ли верхняя граница массива меньше его нижней границы.

Функция IsMissing не работает с простыми типами данных (такими, как Integer или Double), поскольку, в отличие от Variants, они не подготовлены к работе с "отсутствующим" флагом. Поэтому синтаксис для введенных необязательных аргументов позволяет задать значение по умолчанию. Если аргумент опущен при вызове процедуры, аргумент будет иметь это значение по умолчанию, как показано в следующем примере.

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

Во многих случаях можно полностью опустить If MyVar тест, сделав значение по умолчанию равным значению, которое требуется MyVar содержать, если пользователь пропускает его из вызова функции. Это сделает ваш код более кратким и эффективным.

Пример

В этом примере используется функция IsMissing, чтобы проверить, был ли передан необязательный аргумент процедуре, определяемой пользователем. Обратите внимание, что необязательные аргументы могут иметь значения по умолчанию и типы, отличные от 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 VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.