VBA für MS Word

Das MS Word-Objektmodell

Jonglieren mit Range: Range-Objekte aus anderen Range-Objekten

Wie kann ich ein Range-Objekt auf dessen Anfang oder Ende reduzieren? Wie kann ich die Auswahl versetzen? Wie kann ich das nächste Textelement auswählen?

Häufig muss man auf einem existierenden Range-Objekt basierend einen neuen Verweis erzeugen.

Bild vergrößernSo wird der Bereich, den ein Range-Objekt umfasst, verändert

So ist es speziell beim Einfügen von Text manchmal sehr wichtig, den Range auf sein Ende oder seinen Anfang zu reduzieren. Dazu dient die wichtige Methode Collapse.

Standardmäßig wird zum Anfang (wdCollapseStart) hin reduziert. Durch Angabe von wdCollapseEnd als Parameter kann aber auch zum Ende hin reduziert werden. Beispiel: Verweist rngBereich auf den Text "ist ein" und wird auf diesem Range die Methode Collapse ohne Parameter oder mit dem Parameter wdCollapseStart angewendet, so verweist das Ergebnis anschließend auf den Bereich unmittelbar vor dem Wort "ist". Dieser neue Bereich umfasst 0 Zeichen.

Wichtig ist, dass Collapse dabei kein neues Objekt zurückgibt, sondern den bestehenden Objektverweis ändert. Deshalb sollte es nur im Zusammenhang mit Objektvariablen oder dem Selection-Objekt verwendet werden.

Um den Verweis eines Range-Objektes an den Beginn bzw. das Ende eines Zeichens/Wortes/Satzes/Absatzes/Abschnittes usw. zu verschieben oder den Verweis bis zum Ende oder Anfang zu erweitern, verwendet man die Methoden EndOf bzw. StartOf. Auch diese Methoden verändern direkt den bestehenden Objektverweis.

Ähnlich funktioniert auch die Methode Expand. Diese erweitert jedoch den Bereich auf die angegebene Einheit und umfasst damit die jeweils nächst größere Einheit.

Mit den verschiedenen Goto-Methoden (Goto, GotoNext, GotoPrevious) können bestimmte Elemente im Dokument angesprungen werden. Ergebnis dieser Funktions-Methoden ist jeweils der Anfang z. B. einer Seite. Ähnlich funktionieren auch die verschiedenen Move-Methoden, sowie die Methoden Next und Previous.

Um zu prüfen, ob ein Range-Objekt in einem anderen Range-Objekt enthalten ist, verwenden Sie am besten die Methode InRange. Wenden Sie diese Methode auf das Range-Objekt an, von dem Sie vermuten, dass es in dem anderen Range-Objekt, das Sie als Parameter übergeben, enthalten ist. Das Ergebnis dieser Funktionsmethode ist jeweils True oder False.

Mitglied werden, Vorteile nutzen!

  • Sie können alles lesen und herunterladen: Beiträge, PDF-Dateien und Zusatzdateien (Checklisten, Vorlagen, Musterbriefe, Excel-Rechner u.v.a.m.)
  • Unsere Autoren beantworten Ihre Fragen

Inhalt

Downloads zu diesem Beitrag

Newsletter abonnieren