Returnerer en boolsk verdi som angir om et valgfritt variantargument er sendt til en prosedyre.
Syntaks
IsMissing(argname)
Det obligatoriske argname-argumentet inneholder navnet på et valgfritt Variant-prosedyreargument .
Merknader
Bruk IsMissing-funksjonen til å oppdage om valgfrie variantargumenter er angitt under kall av en prosedyre. IsMissing returnerer Sann hvis ingen verdi er sendt for det angitte argumentet. Hvis ikke, returneres Usann. Hvis IsMissing returnerer Sann for et argument, kan bruk av det manglende argumentet i en annen kode føre til en brukerdefinert feil. Hvis IsMissing brukes på et ParamArray-argument , returneres alltid Usann. Hvis du vil oppdage en tom ParamArray, tester du for å se om matrisens øvre grense er mindre enn den nedre grensen.
Obs!
IsMissing fungerer ikke på enkle datatyper (for eksempel heltall eller dobbel) fordi de, i motsetning til varianter, ikke har en bestemmelse for en «manglende» flaggbit. På grunn av dette lar syntaksen for innskrevne valgfrie argumenter deg angi en standardverdi. Hvis argumentet utelates når prosedyren kalles, har argumentet denne standardverdien, som i eksemplet nedenfor:
Obs!
I eksemplene nedenfor vises bruken av denne funksjonen i en VBA-modul (Visual Basic for Applications). Hvis du vil ha mer informasjon om hvordan du arbeider med VBA, velger du Utviklerreferanse fra rullegardinlisten ved siden av Søk og skriver inn ett eller flere søkeord i søkeboksen.
Sub MySub(Optional MyVar As String = "specialvalue")
If MyVar = "specialvalue" Then
' MyVar was omitted.
Else
...
End Sub
I mange tilfeller kan du utelate testen If MyVar helt ved å gjøre standardverdien lik verdien du vil MyVar ha hvis brukeren utelater den fra funksjonskallet. Dette gjør koden din mer konsis og effektiv.
Eksempel
Dette eksemplet bruker IsMissing-funksjonen til å kontrollere om et valgfritt argument er sendt til en brukerdefinert prosedyre. Vær oppmerksom på at valgfrie argumenter nå kan ha andre standardverdier og -typer enn 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