Retorna um valor booliano que indica se umargumentovariant 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 variant opcionais foram fornecidos ou não na chamada de um procedimento. IsMissing retornará True se nenhum valor tiver sido passado para o argumento especificado; caso contrário, ele retorna 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 da matriz é menor que o limite inferior.
Observação: 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 causa disso, a sintaxe para argumentos opcionais tipado permite especificar um valor padrão. Se o argumento for omitido quando o procedimento for chamado, o argumento terá esse valor padrão, como no exemplo abaixo:
Observação: Exemplos a seguir demonstram o uso dessa função em um módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência do Desenvolvedor na lista suspensa ao lado de Pesquisar e insira um ou mais termos na caixa de pesquisa.
Sub MySub(Optional MyVar As String = "specialvalue")
If MyVar = "specialvalue" Then ' MyVar was omitted. Else ... End Sub
Em muitos casos, você pode omitir o teste If MyVar inteiramente, tornando o valor padrão igual ao valor que você deseja que MyVar contenha se o usuário o omitir 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 tiver sido passado para um procedimento definido pelo usuário. Observe que os argumentos opcionais agora podem ter valores e tipos padrão diferentes do 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