Función IsMissing

Devuelve un valor booleano que indica si se ha pasado un argumentoVariant opcional a un procedimiento.

Sintaxis

IsMissing(argname)

El argumento argname requerido contiene el nombre de un argumento de procedimiento Variant opcional.

Comentarios

Use la función IsMissing para detectar si los argumentos Variant opcionales se han proporcionado o no al llamar a un procedimiento. IsMissing devuelve True si no se ha transferido ningún valor para el argumento especificado; en caso contrario, devuelve False.

Si IsMissing devuelve True para un argumento, el uso del argumento que falta en otro código puede provocar un error definido por el usuario.

Si IsMissing se usa en un argumento ParamArray, siempre devuelve False. Para detectar un ParamArray vacío, pruebe a ver si el límite superior de la matriz es menos que su límite inferior.

IsMissing no funciona en tipos de datos sencillos (como Integer o Double) porque, a diferencia de los tipos Variants, no tienen una provisión para un bit de la marca "ausente". Debido a esto, la sintaxis para argumentos opcionales escritos permite especificar un valor predeterminado. Si se omite el argumento cuando se llama al procedimiento, el argumento tendrá este valor predeterminado, como en el ejemplo siguiente.

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

En muchos casos, puede omitir la If MyVar prueba por completo haciendo que el valor predeterminado sea igual al valor que desea MyVar contener si el usuario la omite de la llamada de función. Esto hace que el código sea más conciso y eficiente.

Ejemplo:

En este ejemplo, se usa la función IsMissing para comprobar si se ha transferido un argumento opcional a un procedimiento definido por el usuario. Tenga en cuenta que los argumentos opcionales ahora pueden tener valores predeterminados y tipos distintos de 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

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.