Zugreifen auf Absätze in einem Makro (Microsoft Word)
Eines der raffinierten Dinge beim Programmieren von VBA-Makros ist, dass die Sprache objektorientiert ist. Dies bedeutet, dass Sie mit Objekten und Sammlungen von Objekten auf jeden Teil Ihres Dokuments zugreifen können. Mit anderen Worten, Sie können Absätze bearbeiten, ohne sie jemals auswählen zu müssen.
Angenommen, Sie möchten nacheinander auf jeden Absatz eines Dokuments zugreifen und den Text in diesem Absatz bearbeiten.
Da jeder Absatz ein bestimmtes Objekt im Dokument ist, ist dies relativ einfach. Alle Absatzobjekte sind als Teil der Absatzsammlung zugänglich. Der folgende Code reicht aus:
iParCount = ActiveDocument.Paragraphs.Count For J = 1 To iParCount sMyPar = ActiveDocument.Paragraphs(J).Range.Text [Add processing comments to manipulate sMyPar] ActiveDocument.Paragraphs(J).Range.Text = sMyPar Next J
In der ersten Zeile des Codes wird iParCount gleich der Anzahl der Absätze im aktuellen Dokument festgelegt. Die Schleife, die in der zweiten Zeile beginnt, erledigt dann die Hauptarbeit im Makro. In der dritten Zeile wird die sMyPar-Zeichenfolge gleich dem Text innerhalb des angegebenen Absatzes gesetzt. (Wenn J gleich 1 ist, arbeiten Sie mit dem ersten Absatz. Wenn J gleich 2 ist, ist es der zweite Absatz – und so weiter.)
Nachdem die Verarbeitung von sMyPar abgeschlossen ist, wird in der nächsten Zeile der Dokumenttext dem geänderten Text in der sMyPar-Zeichenfolge gleichgesetzt.
Die Ausführung des obigen Codes dauert jedoch ziemlich lange. Es wäre schneller, mit einer For Each-Schleife auf die Paragraphs-Sammlung zuzugreifen, wie hier gezeigt:
For Each p In ActiveDocument.Paragraphs sMyPar = p.Range.Text [Add processing comments to manipulate sMyPar] p.Range.Text = sMyPar Next p
Sie können Ihren Code noch schneller machen, wenn Sie die Absätze nur ändern, wenn Ihre Verarbeitung anzeigt, dass eine Änderung erforderlich ist.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.
(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (12177) gilt für Microsoft Word 2007, 2010, 2013 und 2016. Eine Version dieses Tipps für die ältere Menüoberfläche von Word finden Sie hier: