Arbeiten mit dem Selection-Objekt

Wenn Sie in Word an einem Dokument arbeiten, müssen Sie normalerweise den Text zum Durchführen einer Aktion (z. B. Formatierung des Texts oder Texteingabe) vorher markieren. In Visual Basic muss Text vor der Änderung in der Regel nicht markiert werden. Stattdessen erstellen Sie ein Range-Objekt , das auf einen bestimmten Teil des Dokuments verweist. Informationen zum Definieren von Range-Objekten finden Sie unter Arbeiten mit Range-Objekten. Wenn Ihr Code jedoch auf eine Auswahl reagieren oder ändern soll, können Sie dies mithilfe des Selection-Objekts tun.

Falls Text nicht bereits markiert wurde, verwenden Sie die Select-Methode, um den Text zu markieren, der einem bestimmten Objekt zugeordnet ist, und erstellen Sie ein Selection-Objekt. Die folgende Anweisung markiert beispielsweise das erste Wort im aktiven Dokument.

Sub SelectFirstWord() 
 ActiveDocument.Words(1).Select 
End Sub

Weitere Informationen finden Sie unter Markieren von Text in einem Dokument. Wenn Text bereits ausgewählt ist, verwenden Sie die Selection-Eigenschaft , um ein Selection-Objekt zurückzugeben, das die aktuelle Auswahl in einem Dokument darstellt. There can be only one Selection object per document, and it always accesses the current selection. The following example changes the formatting of the paragraphs in the current selection.

Sub FormatSelection() 
 Selection.Paragraphs.LeftIndent = InchesToPoints(0.5) 
End Sub

Im folgenden Beispiel wird nach der aktuellen Markierung das Wort "Hello" eingefügt.

Sub InsertTextAfterSelection() 
 Selection.InsertAfter Text:="Hello " 
End Sub

Im folgenden Beispiel wird dem markierten Text Fettformatierung zugewiesen.

Sub BoldSelectedText() 
 Selection.Font.Bold = True 
End Sub

Die Makroaufzeichnung erstellt oft ein Makro, das das Selection-Objekt verwendet. Das folgende Beispiel wurde mit der Makroaufzeichnung erstellt. Das Makro markiert die ersten zwei Wörter im aktiven Dokument und wendet Fettformatierung an diesen an.

Sub Macro() 
 Selection.HomeKey Unit:=wdStory 
 Selection.MoveRight Unit:=wdWord, Count:=2, Extend:=wdExtend 
 Selection.Font.Bold = wdToggle 
End Sub

Im folgenden Beispiel wird dieselbe Aufgabe ohne Markieren des Texts und ohne Verwendung des Selection-Objekts durchgeführt.

Sub WorkingWithRanges() 
 ActiveDocument.Range(Start:=0, _ 
 End:=ActiveDocument.Words(2).End).Bold = True 
End Sub

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.