Функция IsMissing

IsMissing(ArgName)

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

Возвращаемое значение

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

Параметры
ArgName Обязательный параметр содержит имя необязательного параметра процедуры
Дополнительные сведения

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

Замечание Функция IsMissing не работает с простыми типами данных (такими как Integer или Double), так как в отличие от типа Variants, эти типы данных не снабжены битом признака «отсутствия» ("missing" flag bit). Синтаксис для типовых необязательных параметров позволяет разработчику задать значение по умолчанию. Тогда, в случае отсутствия параметра при вызове процедуры, этот параметр будет иметь значение, заданное по умолчанию, как в следующем примере:

Sub MySub(Optional MyVar As String = "specialvalue")
    If MyVar = "specialvalue" Then
       ' MyVar опущен
    Else
    ...
End Sub

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

Пример
' В данном примере функция IsMissing
' используется для проверки, был ли передан
' в определяемую пользователем процедуру необязательный
' параметр. Следует отметить что параметры Optional
' могут иметь значения по умолчанию и типы данных,
' отличные от Variant
Dim ReturnValue

' Следующие инструкции вызывают определяемую пользователем
' процедуру Function
ReturnValue = ReturnTwice() ' Возвращает Null
ReturnValue = ReturnTwice(2) ' Возвращает 4

' Описывает процедуру Function
Function ReturnTwice(Optional A)
   If IsMissing(A) Then
      ' Если параметр опущен, возвращается Null
      ReturnTwice = Null
   Else
      ' Если параметр указан, возвращается удвоенное значение
      ReturnTwice = A * 2
   End If
End Function
Категория
Функции обработки системных параметров