zum Variant handling:
Variant is a special data type: variables of type Variant can hold values of any of the following data types that LotusScript recognizes, except for user-defined data types:
A value of any of the scalar data types that LotusScript supports — Boolean, Byte, Integer, Long, Single, Double, Currency, String
A date/time value
An array or list
An object reference, that is, a pointer to an OLE Automation object or to an instance of a product-defined or user-defined class, or an object reference to a Java Object.
The NULL value
The EMPTY value
You declare a Variant variable the same way you declare a scalar variable — explicitly or implicitly. If no Deftype statements are applicable, a variable that you declare without using an As dataType clause or a data type suffix is of type Variant. Here, Variant variables appear with the suffix V to distinguish them from object reference variables or variables of some user-defined data type. For example:
Dim myVariant1V As Variant
Dim myVariant2V
Public myVariant3V As Variant
myVariant4V = 123.45
When you declare a Variant variable explicitly, LotusScript initializes it to the special value EMPTY. (Use the function IsEmpty to test a Variant variable for this value.) Declaring a Variant variable is less efficient than assigning it another data type, but is convenient. When you assign a Variant variable a value, LotusScript determines the data type of that value in either of two ways, depending on the available information:...
Sprich:
IsEmpty(variant) or variant(0) = ""