Ändern eines Teils eines Dokuments

Visual Basic enthält Objekte, die Sie zum Ändern der folgenden Dokumentelemente verwenden können: Zeichen, Wörter, Sätze, Absätze und Abschnitte. Die folgende Tabelle enthält die Eigenschaften, die diesen Dokumentelementen entsprechen, und die Objekte, die sie zurückgeben.

Ausdruck Zurückgegebenes Objekt
Words ( index) Range
Characters ( index) Range
Sentences ( index) Range
Paragraphs ( index) Paragraph
Sections ( index) Abschnitt

Wenn diese Eigenschaften ohne Index verwendet werden, wird ein Auflistungsobjekt mit demselben Namen zurückgegeben. Die Paragraphs-Eigenschaft gibt beispielsweise das Paragraphs-Auflistungsobjekt zurück. Wenn Sie aber ein Element innerhalb dieser Auflistungen durch den Index kennzeichnen, wird das Objekt in der zweiten Spalte der Tabelle zurückgegeben. Gibt beispielsweise Words(1) ein Range-Objekt zurück. Nachdem Sie ein Range-Objekt haben, können Sie jede der Bereichs-Eigenschaften oder -Methoden zum Ändern des Range-Objekts verwenden. Die folgende Anweisung kopiert z. B. das erste Wort in der Markierung in die Zwischenablage.

Sub CopyWord() 
    Selection.Words(1).Copy 
End Sub

Hinweis Die Elemente in den Paragraphs- und Sections-Auflistungen sind singulare Formen der Auflistung, insbesondere Paragraph-Objekte und Section-Objekte, anstatt Range-Objekte. Tatsächlich verfügen die meisten Auflistungen im Word-Objektmodell über einzigartige Formobjekte, mit denen Sie arbeiten können. Die Range-Eigenschaft (die ein Range-Objekt zurückgibt) ist jedoch sowohl für das Paragraph-Objekt als auch für das Section-Objekt sowie für die meisten anderen Objekte verfügbar, bei denen es sich um untere Objekte von Auflistungen handelt. Die folgende Anweisung kopiert beispielsweise den ersten Absatz im aktiven Dokument in die Zwischenablage.

Sub CopyParagraph() 
    ActiveDocument.Paragraphs(1).Range.Copy 
End Sub

Alle Dokumentelement-Eigenschaften in der vorherigen Tabelle stehen den Document-, Selection- und Range-Objekten zur Verfügung. In den folgenden Beispielen wird gezeigt, wie Sie einen Drilldown auf diese Eigenschaften von Document-, Selection- und Range-Objekten aus erstellen können. Im folgenden Beispiel wird die Groß-/Kleinschreibung des ersten Worts im aktiven Dokument festgelegt.

Sub ChangeCase() 
    ActiveDocument.Words(1).Case = wdUpperCase 
End Sub

Im folgenden Beispiel wird der untere Seitenrand des aktuellen Abschnitts auf 0,5 Zoll festgelegt.

Sub ChangeSectionMargin() 
    Selection.Sections(1).PageSetup.BottomMargin = InchesToPoints(0.5) 
End Sub

Im folgenden Beispiel wird der Text im aktiven Dokument doppelt leer (die Content-Eigenschaft gibt ein Range-Objekt zurück).

Sub DoubleSpaceDocument() 
    ActiveDocument.Content.ParagraphFormat.Space2 
End Sub

Verändern einer Gruppe von Dokumentelementen

Zum Ändern eines Textbereichs, der aus einer Gruppe von Dokumentelementen (Zeichen, Wörtern, Sätzen, Absätzen oder Abschnitten) besteht, müssen Sie ein Range-Objekt erstellen. Die Range-Methode erstellt ein Range-Objekt, wenn ein Start- und Endpunkt vorgegeben ist. Die folgende Anweisung erstellt beispielsweise ein Range-Objekt, das sich auf die ersten zehn Zeichen im aktiven Dokument bezieht.

Sub SetRangeForFirstTenCharacters() 
    Dim rngTenCharacters As Range 
    Set rngTenCharacters = ActiveDocument.Range(Start:=0, End:=10) 
End Sub

Mithilfe der Eigenschaften Start und End mit einem Range-Objekt können Sie ein neues Range-Objekt erstellen, das auf eine Gruppe von Dokumentelementen verweist. Mit der folgenden Anweisung wird beispielsweise ein Range-Objekt ( ) erstellt, das sich auf die ersten drei Wörter rngThreeWords im aktiven Dokument bezieht.

Sub SetRangeForFirstThreeWords() 
    Dim docActive As Document 
    Dim rngThreeWords As Range 
    Set docActive = ActiveDocument 
    Set rngThreeWords = docActive.Range(Start:=docActive.Words(1).Start, _ 
        End:=docActive.Words(3).End) 
End Sub

Im folgenden Beispiel wird ein Range-Objekt ( ) erstellt, das am Anfang des zweiten Absatzes beginnt und nach dem rngParagraphs dritten Absatz endet.

Sub SetParagraphRange() 
    Dim docActive As Document 
    Dim rngParagraphs As Range 
    Set docActive = ActiveDocument 
    Set rngParagraphs = docActive.Range(Start:=docActive.Paragraphs(2).Range.Start, _ 
        End:=docActive.Paragraphs(3).Range.End) 
End Sub

Weitere Informationen zum Definieren von Range-Objekten finden Sie unter Arbeiten mit Range-Objekten.

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.