Returnerer en boolsk verdi som angir om en valgfri variantargument er sendt til en prosedyre.
Syntaks
IsMissing( argname )
Argumentet påkrevd argname inneholder navnet på et valgfritt variantprosedyreargument .
Merknader
Bruk IsMissing-funksjonen til å finne ut om valgfrie variantargumenter er angitt i kall til en prosedyre. IsMissing returnerer Sann hvis ingen verdi er sendt for det angitte argumentet. Ellers returneres Usann. Hvis IsMissing returnerer Sann for et argument, kan bruk av det manglende argumentet i en annen kode forårsake 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 langt flyttall) fordi de, i motsetning til varianter, ikke har en klargjøring for en "manglende" flaggbit. På grunn av dette kan du bruke syntaksen for innskrevne valgfrie argumenter til å angi en standardverdi. Hvis argumentet utelates når prosedyren kalles, vil argumentet ha 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 If MyVar testen fullstendig ved å gjøre standardverdien lik verdien du vil at MyVar skal inneholde hvis brukeren utelater den fra funksjonskallet. Dette gjør koden 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 andre 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