Função IsMissing

Retorna um valor booliano indicando se um argumentoVariant opcional foi passado para um procedimento.

Sintaxe

IsMissing(argname)

O argumento argname necessário contém o nome de um argumento de procedimento Variant opcional.

Comentários

Use a função IsMissing para detectar se argumentos opcionais Variant foram fornecidos ou não ao chamar um procedimento. IsMissing retornará True se nenhum valor tiver sido passado para o argumento especificado; caso contrário, ele retornará False.

Se IsMissing retornar True para um argumento, o uso do argumento ausente em outro código poderá causar um erro definido pelo usuário.

Se IsMissing for usado em um argumento ParamArray , ele sempre retornará False. Para detectar um ParamArray vazio, teste para ver se o limite superior do array é menor que o limite inferior.

IsMissing não funciona em tipos de dados simples (como Integer ou Double) porque, ao contrário de Variants, eles não têm uma provisão para um bit de sinalizador "ausente". Por isso, a sintaxe para argumentos opcionais digitados permite que você especifique um valor padrão. Se o argumento for omitido quando o procedimento for chamado, o argumento terá esse valor padrão, como no exemplo a seguir.

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

Em muitos casos, você pode omitir totalmente o If MyVar teste tornando o valor padrão igual ao valor que MyVar deseja conter se o usuário omiti-lo da chamada de função. Isso torna seu código mais conciso e eficiente.

Exemplo

Este exemplo usa a função IsMissing para marcar se um argumento opcional foi passado para um procedimento definido pelo usuário. Observe que os argumentos opcionais agora podem ter valores padrão e tipos diferentes de 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

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.