Einige nützliche Funktionen in VBA
»VBA.Strings.Len«
Die Standardfunktion "VBA.Strings.Len" ergibt die Länge einer Zeichenfolge.
- Direktbereich
? VBA.Strings.Len( "abc" )
3
- Direktbereich
? VBA.Strings.Len( "abcd" )
4
Im Falle der als Beispiel gewählten Funktion »VBA.Strings.Len« ist der Wert des Aufrufausdrucks beispielsweise immer die Länge des Argumentausdrucks.
Im folgenden ist für die Fehlermeldung beim unqualifizierten »Len« leider keine nachvollziehbare Erklärung bekannt. Microsoft selber sagt zwar, daß die Fehlermeldung daran liegt, daß ein numerische Argument für »Len« verwendet wurde, während »Len« eine Zeichenfolge erwartet. Aber dies erklärt nicht, warum es dann auf einmal geht, wenn der Name qualifiziert wird.
? Len( Rnd )
Fehler beim Kompilieren:
Variable erforderlich - Zuweisung an diesen Ausdruck nicht möglich
Variable required. Can't assign to this expression.
? VBA.Strings.Len( Rnd )
9
»VBA.Math.Abs«
Ein weiteres Beispiel einer Standardfunktion, die mit einem Argument aufgerufen wird ist »VBA.Math.Abs«.
- Direktbereich
? VBA.Math.Abs( -2 )
2
Diese Funktion ergibt den Abstand des Argumentwerts von 0.
»VBA.Strings.Chr$«
Ein weiteres Beispiel einer Standardfunktion, die mit einem Argument aufgerufen wird ist »VBA.Strings.Chr$«.
- Direktbereich
? VBA.Strings.Chr$( 65 )
A
In VBA hat jedes Zeichen eine Kennzahl. Das Zeichen „A“ hat die Kennzahl 65. »VBA.Strings.Chr$« liefert das Zeichen zu einer angegebenen Kennzahl.
Das Dollarzeichen »$« ist ein Teil des Namens dieser Funktion. Es weist darauf hin, daß diese Funktion eine Zeichenfolge liefert (die hier ein Zeichen hat). Normalerweise sind solche Sonderzeichen in Namen nicht erlaubt, aber ausnahmsweise sind bestimmten Sonderzeichen am Ende mancher Namen als ein solches Typkennzeichen gestattet. Das Dollarzeichen kann auch weggelassen werden. Wir bevorzugen aber die Schreibweise mit dem Dollarzeichen, da solche Ausdrücke mit einem Dollarzeichen vermutlich oft schneller abgearbeitet werden.
Ein zufälliger Buchstabe aus dem Bereich von „A“ bis „Z“:
- Direktbereich
? VBA.Strings.Chr$( 65 + VBA.Math.Rnd() * 25 )
E
Variante der obigen Zeile mit möglichst wenig Zeichen:
- Direktbereich
? Chr(65+Rnd*25)
S
In diesem Text hier wird oft eine ausführliche Schreibweise, wie beispielsweise »VBA.Strings.Chr$« verwendet, weil diese eindeutig und manchmal robuster ist. Die Verwendung des Dollarzeichens könnte Programme manchmal auch schneller machen. Eingefügter Leerraum soll das Lesen des Text erleichtern. Es wird zukünftig meist nicht darauf hingewiesen, daß die Eingabe manchmal auch verkürzt werden kann. Der Leser muß also ab jetzt gegebenenfalls selber an die Möglichkeit der Verkürzung denken, falls er eine kürzere Schreibweise bevorzugt.