Search notes:

VBA functions: isX()

VBA offers a few functions whose names start with is…() to test if a variable has a certain type or characteristic. These functions are especially useful when dealing with variants.
These functsions are
isArray
isDate
isEmpty Test if a variant is empty
isError
isNumeric
isMissing Check if an optional parameter was assigned a value when the sub/function was invoked. See here
isNull Test if a variant is null.
isObject
option explicit


sub main() ' {

    dim lng as long
    lng = 7

    debug.print( isEmpty  (lng) )  ' False
    debug.print( isArray  (lng) )  ' False
    debug.print( isNumeric(lng) )  ' True
    debug.print( isMissing(lng) )  ' False
    debug.print( isNull   (lng) )  ' False
    debug.print( isObject (lng) )  ' False

    dim var as variant

    debug.print( isArray  (var) )  ' False
    debug.print( isEmpty  (var) )  ' True
    debug.print( isNumeric(var) )  ' True    ' True although not assigned a value
    debug.print( isMissing(var) )  ' False
    debug.print( isNull   (var) )  ' False
    debug.print( isObject (var) )  ' False

    var = "  7.3   "

    debug.print( isArray  (var) )  ' False
    debug.print( isEmpty  (var) )  ' False   ' Because var is now assigned a value
    debug.print( isNumeric(var) )  ' True
    debug.print( isMissing(var) )  ' False
    debug.print( isNull   (var) )  ' False
    debug.print( isObject (var) )  ' False

    var = "  7.3 liters  "

    debug.print( isArray  (var) )  ' False
    debug.print( isEmpty  (var) )  ' False
    debug.print( isNumeric(var) )  ' False   ' spaces are ok, but not letters.
    debug.print( isMissing(var) )  ' False
    debug.print( isNull   (var) )  ' False
    debug.print( isObject (var) )  ' False

    var = null

    debug.print( isArray  (var) )  ' False
    debug.print( isEmpty  (var) )  ' False
    debug.print( isNumeric(var) )  ' False
    debug.print( isMissing(var) )  ' False
    debug.print( isNull   (var) )  ' True    ' Because var is assigned null
    debug.print( isObject (var) )  ' False

    dim obj as excel.worksheet

    debug.print( isArray  (obj) )  ' False
    debug.print( isEmpty  (obj) )  ' False
    debug.print( isNumeric(obj) )  ' False
    debug.print( isMissing(obj) )  ' False
    debug.print( isNull   (obj) )  ' False
    debug.print( isObject (obj) )  ' True

    set obj = activeSheet          '           Assigning a an object does not change returned values

    debug.print( isArray  (obj) )  ' False
    debug.print( isEmpty  (obj) )  ' False
    debug.print( isNumeric(obj) )  ' False
    debug.print( isMissing(obj) )  ' False
    debug.print( isNull   (obj) )  ' False
    debug.print( isObject (obj) )  ' True

end sub ' }
Github repository about-VBA, path: /functions/isX/isX.bas

Index