Agnes fragte, ob es eine Möglichkeit gibt, alle Instanzen des Wortes „Abschnitt“ und alle nach dem Wort folgenden Zusatzinformationen automatisch zu unterstreichen.

Beispielsweise kann ein Dokument Text wie „Abschnitt 2.3 (b) (i)“

enthalten oder „Abschnitt 5.21“ oder „Abschnitt 12.12 (a)“ und Agnes möchte diesen Text finden und alles unterstreichen lassen.

Es gibt ein paar Dinge zu versuchen. Zuallererst könnten Sie ein Standard-Suchen und -Ersetzen durchführen, aber nur, wenn Sie den Text irgendwie etwas „Standard“ machen können. Ohne ein Muster, das angepasst werden kann, ist es praktisch unmöglich, ein Suchen und Ersetzen durchzuführen, bei dem alle möglichen Instanzen des Textes gefunden werden.

Eine Möglichkeit besteht jedoch darin, ein Makro aufzuzeichnen, das alle Möglichkeiten berücksichtigt. Es wäre nicht unbedingt ein einfaches Makro, da es das Wort „Abschnitt“ finden müsste, gefolgt von einem Leerzeichen, einer Ziffer, einem Punkt, mehr Ziffern und dann (optional) alles bis einschließlich einer schließenden Klammer. Das ist eine Menge Textanalyse, die stattfinden muss.

Der Ausgangspunkt ist eine Platzhaltersuche. Der folgende Suchbegriff findet das Wort Abschnitt, gefolgt von einer „Nummer Punkt Nummer“

Muster:

Section [0-9]{1,}.[0-9]{1,}

Wenn dieses Suchmuster in einem Makro verwendet wird, kann das Makro nach jedem erfolgreichen Auffinden des Textes damit beginnen, das Gefundene zu erweitern und festzustellen, ob es in Klammern gesetzte Zeichen enthält. Das folgende Makro führt diese Aufgabe aus.

Sub ULWords()

Selection.Find.ClearFormatting     With Selection.Find         .Text = "Section [0-9]{1,}.[0-9]{1,}"

.Replacement.Text = ""

.Forward = True         .Wrap = wdFindContinue         .Format = False         .MatchCase = False         .MatchWholeWord = False         .MatchWildcards = True         .MatchSoundsLike = False         .MatchAllWordForms = False     End With     Selection.Find.Execute     While Selection.Find.Found         Selection.MoveRight Unit:=wdCharacter, _           Count:=1, Extend:=wdExtend             While Right(Selection.Text, 1) = "("

Selection.MoveRight Unit:=wdCharacter, _                   Count:=1, Extend:=wdExtend                 While Right(Selection.Text, 1) <> ")"

Selection.MoveRight Unit:=wdCharacter, _                       Count:=1, Extend:=wdExtend                 Wend                 Selection.MoveRight Unit:=wdCharacter, _                   Count:=1, Extend:=wdExtend             Wend         Selection.MoveRight Unit:=wdCharacter, _           Count:=-1, Extend:=wdExtend         Selection.Font.Underline = True         Selection.MoveRight Unit:=wdCharacter, Count:=1         Selection.Find.Execute     Wend End Sub

Beachten Sie, dass das Makro zu Beginn eine Platzhaltersuche verwendet, um alle Instanzen des Wortes „Abschnitt“ gefolgt von der „Nummer Punkt Nummer“

zu finden Muster. Wenn eine Instanz gefunden wird, wird sie um ein Zeichen erweitert.

Wenn dieses Zeichen eine öffnende Klammer ist, wird die Auswahl erweitert, bis eine schließende Klammer gefunden wird. Dieser Vorgang zum Suchen von öffnenden / schließenden Klammern wird fortgesetzt, und wenn keine weiteren Sätze gefunden werden, wird die gesamte erweiterte Auswahl unterstrichen. Dieser Vorgang wird fortgesetzt, bis das gesamte Dokument durchsucht wurde.

_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 (497) gilt für Microsoft Word 97, 2000, 2002 und 2003. Sie finden eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Word (Word 2007) und später) hier: