Freigeben über


Ändern eines Teils eines Dokuments

Visual Basic enthält Objekte, mit denen Sie die folgenden Dokumentelemente ändern 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
Wörter ( Index) Range
Zeichen ( Index) Range
Sätze ( Index) Range
Absätze ( Index) Paragraph
Abschnitte ( Index) Abschnitt

Wenn diese Eigenschaften ohne Index verwendet werden, wird ein Auflistungsobjekt mit demselben Namen zurückgegeben. Beispielsweise gibt die Paragraphs-Eigenschaft 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 einzelne Formen der Auflistung, insbesondere Paragraph-Objekte und Section-Objekte und nicht Range-Objekte . Tatsächlich verfügen die meisten Auflistungen im Word-Objektmodell über singuläre Formobjekte, mit denen Sie arbeiten können. Die Range-Eigenschaft (die ein Range-Objekt zurückgibt) ist jedoch sowohl für das Paragraph-Objekt und das Section-Objekt als auch für die meisten anderen Objekte verfügbar, die untergeordnete Elemente von Auflistungen sind. Die folgende Anweisung kopiert z. B. 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. Die folgenden Beispiele veranschaulichen, wie Sie einen Drilldown zu diesen Eigenschaften von Document-, Selection- und Range-Objekten ausführen 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 leert (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 Start - und End-Eigenschaften 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 ( rngThreeWords) erstellt, das auf die ersten drei Wörter im aktiven Dokument verweist.

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 ( rngParagraphs) erstellt, das am Anfang des zweiten Absatzes beginnt und nach dem 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.