1. Was genau wird an dieser Stelle mit "*1" bewirkt? Dass es sich nur um ein Zeichen handeln soll?
Korrekt. (Anmerkung: muss man so nicht machen)
2. Ich muss gestehen dass ich diese Zeile trotz Nachschauen der Methode nicht zu fassen bekomme.
Die "Call" -Anweisung steht quasi für "führe aus"?
Korrekt.
Ohne Call würde die Zeile so aussehen.
Wort.MoveEndWhile vbCr & vbLf, wdBackward
und wäre auch ok. Ist am Ende Geschmackssache.
Und dann die Methode.. Wird die Länge des Wortes um 1 verringert, sobald ein Wagenrücklauf in Kombination mit einem Zeilenvorschub gefunden wird? Wieso wird das an dieser Stelle gemacht und was genau wird dadurch bewirkt?
Genau genommen würde an der stelle das vbCr alleine schon reichen, weil dies Konstante für das Wagenrücklaufzeichen (carriage return: 13 dezimal) steht, und das ist das was dir Probleme bereitet hat. Der Methode kannst du allerdings mehrere Zeichen mitgeben. Würdest du dort stattdessen die Zeichenkette "abcd" übergeben, würde er solange das tun was es tut - Erklärung folgt gleich - solange er am Ende ein 'a', oder ein 'b', oder ein 'c' oder ein 'd' sieht.
Die Methode sorgt dafür, solange eines der angegebenen Zeichen am Ende von Wort gefunden wird, dass das Ende (=Position) verschoben wird. Man kann dort eine Anzahl dafür angeben, also wie oft das maximal getan werden darf.
Ist diese Anzahl positiv, verschiebt sich das Ende nach rechts. Ist sie negativ, verschiebt sich das Ende nach links. Hinter der Konstante wdBackward verbirgt sich ein Wert, der sich als "unendlich-nach-links" interpretieren ließe. Dahinter verbirgt sich schlussendlich auch eine Zahl ... nämlich -1073741823.
|