Class VBMissingValue
Represents a Variant/Missing value: what an optional Variant parameter holds when no argument was supplied for it.
public sealed record VBMissingValue : VBErrorValue, IEquatable<VBTypedValue>, IVBTypedValue<VBErrorValue, int>, IEquatable<IVBTypedValue<VBErrorValue, int>>, IEquatable<VBErrorValue>, IEquatable<VBMissingValue>
- Inheritance
-
VBMissingValue
- Implements
- Inherited Members
Remarks
MS-VBAL §6.1.2.7.1.6 calls it "the Missing data value", and §6.1.2.7.1.12 and §6.1.2.7.1.13 report it the same as
an Error. It is one: the Variant COM passes for an omitted argument is a VT_ERROR carrying DISP_E_PARAMNOTFOUND,
which VBA reads as error NamedArgumentNotFound (448) everywhere but in IsMissing:
CStr of it is "Error 448", CLng of it is 448, and an operator given it raises Type mismatch. So it is an
VBErrorValue with that code, and every operation that handles an error value handles it unchanged.
👉 Copying it keeps it Missing: a Variant assigned from an omitted parameter, or an optional parameter it is passed on to,
is Missing too.
Constructors
VBMissingValue()
public VBMissingValue()
VBMissingValue(IBindingHandle)
public VBMissingValue(IBindingHandle handle)
Parameters
handleIBindingHandle
Properties
Missing
public static VBMissingValue Missing { get; }