Compartilhar via


Função IsMissing

Devolve um valor Booleano que indica se foi transmitido um argumentoVariante opcional a um procedimento.

Sintaxe

IsMissing(argname)

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

Comentários

Utilize a função IsMissing para detetar se foram fornecidos argumentos variantes opcionais ao chamar um procedimento. IsMissing devolve True se não tiver sido transmitido nenhum valor para o argumento especificado; caso contrário, devolve Falso.

Se IsMissing devolver Verdadeiro para um argumento, a utilização do argumento em falta noutro código pode causar um erro definido pelo utilizador.

Se IsMissing for utilizado num argumento ParamArray , devolve sempre Falso. Para detetar uma ParamArray vazia, teste para ver se o limite superior da matriz é menor do que o limite inferior.

O IsMissing não funciona em tipos de dados simples (como Número Inteiro ou Duplo) porque, ao contrário de Variantes, não têm uma aprovisionamento para um bit de sinalizador "em falta". Por este motivo, a sintaxe dos argumentos opcionais escritos permite-lhe especificar um valor predefinido. Se o argumento for omitido quando o procedimento for chamado, o argumento terá este valor predefinido, como no exemplo seguinte.

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

Em muitos casos, pode omitir totalmente o If MyVar teste ao tornar o valor predefinido igual ao valor que pretende MyVar conter se o utilizador omitir da chamada de função. Isto torna o seu código mais conciso e eficiente.

Exemplo

Este exemplo utiliza a função IsMissing para marcar se tiver sido transmitido um argumento opcional para um procedimento definido pelo utilizador. Tenha em atenção que os argumentos Opcionais podem agora ter valores e tipos predefinidos que não Variante.

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.