Devolve um valor Booleano que indica se uma variante opcionalargumento foi transmitida a um procedimento.
Sintaxe
IsMissing( argname )
O argumento argname necessário contém o nome de um argumento de procedimento Variante opcional.
Observações
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.
Nota: 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, tal como no exemplo abaixo:
Nota: Os exemplos seguintes demonstram a utilização desta função no módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência para Programadores na lista pendente junto a Procurar e introduza 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, pode omitir totalmente o teste de If MyVar ao tornar o valor predefinido igual ao valor que pretende que MyVar contenha 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 verificar se foi transmitido um argumento opcional a 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