Suche/Ersetze nach Abfrage
Aufgabe: In einem Word-Dokument sind verschiedene FuĂnoten (keine „echten” FuĂnoten, sondern einfacher Text), die unterschiedliche Tags bekommen sollen. Also, die FuĂnote 1) soll einen Tag mit der ID f1 bekommen, die FuĂnote 2) einen Tag mit der ID f2, die FuĂnote * soll den Tag mit der ID f3 bekommen usw. Dies kann durch einen simplen Suche/Ersetze-Vorgang in Word erreicht werden:
Suche: 1), ersetze mit: <FnR RefID=f1>1)</FnR>
Um diesen Vorgang auch fĂŒr Benutzer, die im Umgang mit Word sehr unerfahren sind komfortabel zu gestalten und um sich das lĂ€stige Eintippen des kompletten Tags zu ersparen, habe ich ein Makro erstellt.
Die Userform beinhaltet folgendes:
Private Sub Abbrechen_Click() Unload Fussnoten End Sub Private Sub Ersetze_Change() End Sub Private Sub OK_Click() FussnotenTags End Sub Private Sub Suche_Change() End Sub
Folgendes Makro ruft die Userform auf:
Sub FussnotenAbfrage() Fussnoten.Show vbModeless End Sub
Dieses Makro verarbeitet die eingegebenen Angaben:
Sub FussnotenTags() strSuche = Fussnoten.Suche.Text strErsetze = Fussnoten.Ersetze.Text Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = strSuche & "^t" .Replacement.Text = "<FnR RefID=" & strErsetze & ">" & strSuche & "</FnR>" .Forward = True .Wrap = wdFindContinue End With Selection.Find.Execute Replace:=wdReplaceAll Unload Fussnoten End Sub
Kritische Stellen (je nach Dokument) sind jedoch leider noch vorhanden:
Da man bei einer Suche nach Zahlen oder Zeichen, aus denen eine klassische FuĂnote ja besteht, nicht die Option “ganzes Wort” aktivieren kann, bzw. die Einstellung .MatchWholeWord = True
keine Auswirkung hat, muss zuerst nach zweistelligen FuĂnoten gesucht werden und dann nach einstelligen.
AuĂerdem habe ich die Suche eingeschrĂ€nkt, so dass nach dem gesuchten Zeichen ein Tabstopp folgen muss. Damit verhindere ich, dass das Makro die FuĂnote „11)” noch einmal findet, wenn danach nach der FuĂnote „1)” gesucht wird. Diese Abgrenzung könnte je nach Dokument natĂŒrlich auch ein Leerschritt, Punkt o. Ă€. sein.
Keine Kommentare
Noch keine Kommentare
RSS Feed für Kommentare zu diesem Artikel.
Entschuldige, das Kommentarformular ist zurzeit geschlossen.