Tipps & Tricks 06.02.2007, 21:45 Uhr

Mein Word-Makro in einer Schleife ausführen

Problem: Ich habe mit dem Makrorecorder von Word ein Makro aufgezeichnet, das in einem Text mit bestimmten Zeichen markierte Namen per Wildcard sucht (|*$), den Namen fett formatiert und die Markierungen (|-Zeichen und $-Zeichen) anschliessend löscht. Diesem Makro habe ich einen Button auf der Symbolleiste zugewiesen. Das Problem ist, dass ich für jeden markierten Namen (können mehrere 100 sein) den Button anklicken muss. Kann ich das Makro in eine Schleife einbinden, die so lange ausgeführt wird, bis das Ende des Dokuments erreicht ist?
Lösung: Wenn Sie am Anfang der Prozedur ermitteln, wieviele zu bearbeitende Textstellen im gesamten Dokument vorhanden sind, können Sie eine Schleife solange laufen lassen, bis diese Anzahl abgearbeitet ist.
Folgenden Teil fügen Sie am Anfang in Ihr bereits bestehendes Makro ein, um die Anzahl Textstellen zu ermitteln:
With Selection.Find
.Text = "|*$"
While .Execute
Anz = Anz + 1
Wend
End With
Danach ergänzen Sie den restlichen Teil um folgende einzelne Zeile am ANFANG:
Do Until Anz = 0
und dann am ENDE des Teils noch mit den folgenden zwei Zeilen:
Anz = Anz - 1
Loop
Komplett sieht das Ganze sieht dann etwa so aus:
-----------------------------------------------
Sub FormatFett()
With Selection.Find
.Text = "|*$"
While .Execute
Anz = Anz + 1
Wend
End With
Do Until Anz = 0
HIER IHR
BEREITS
BESTEHENDER
MAKRO-TEIL
Anz = Anz - 1
Loop
End Sub
-----------------------------------------------



Kommentare
Es sind keine Kommentare vorhanden.