Kann ich in Word nicht nur nach einem Wort sondern mehreren Wörtern auf allen Ebenen suchen und die Treffer gelb hinterlegen?
Gesucht soll werden nach Hund Katze Maus, egal wo sie im Text stehen. Dazu nutzen wir ein Word Makro:
Hier ist ein kurzes, praktisches Makro für Word. Damit kannst du eine Liste von Wörtern (getrennt durch Kommas) eingeben, und Word markiert dir alle Fundstellen gleichzeitig gelb.
So richtest du es ein:
Kopiere den folgenden Code in das weiße Fenster:
Drücke in Word Alt + F11, um den Editor zu öffnen.
Gehe im Menü auf Einfügen > Modul.
Sub MarkiereAllesEgalWo()
Dim Suchbegriffe As String: Suchbegriffe = InputBox("Wörter mit Komma getrennt:")
If Suchbegriffe = "" Then Exit Sub
Dim Begriffe() As String: Begriffe = Split(Suchbegriffe, ",")
Dim i As Long
Dim shp As Shape
' WICHTIG: Setzt die Standard-Markierfarbe auf GELB
Options.DefaultHighlightColorIndex = wdYellow
' 1. Durchsuche den Haupttext und alle Standard-Ebenen (Kopfzeilen, etc.)
Dim rng As Range
For Each rng In ActiveDocument.StoryRanges
Do
For i = LBound(Begriffe) To UBound(Begriffe)
FindeUndMarkiere rng, Trim(Begriffe(i))
Next i
Set rng = rng.NextStoryRange
Loop While Not rng Is Nothing
Next rng
' 2. Spezial-Durchlauf für ALLE Shapes (auch gruppierte)
For Each shp In ActiveDocument.Shapes
DurchsucheShape shp, Begriffe
Next shp
MsgBox "Suche beendet. Wenn nichts markiert ist, sind die Wörter evtl. Teil einer Grafik/SmartArt.", vbInformation
End Sub
' Hilfsfunktion für die eigentliche Suche
Sub FindeUndMarkiere(ByRef rng As Range, ByVal wort As String)
If wort = "" Then Exit Sub
With rng.Find
.ClearFormatting
.Replacement.ClearFormatting
.Replacement.Highlight = True
.Text = wort
.Replacement.Text = "^&"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.Execute Replace:=wdReplaceAll
End With
End Sub
' Hilfsfunktion für Shapes und Gruppen
Sub DurchsucheShape(ByRef shp As Shape, ByRef Begriffe() As String)
Dim i As Long
On Error Resume Next
' Falls es eine Gruppe ist, geh in die Gruppe rein
If shp.Type = msoGroup Then
Dim gShp As Shape
For Each gShp In shp.GroupItems
DurchsucheShape gShp, Begriffe
Next gShp
End If
' Falls es Text enthält
If shp.TextFrame.HasText Then
For i = LBound(Begriffe) To UBound(Begriffe)
FindeUndMarkiere shp.TextFrame.TextRange, Trim(Begriffe(i))
Next i
End If
End Sub
So nutzt du es:
- Schließe den Editor und kehre zu Word zurück.
- Drücke
Alt + F8, wähle MehrereAllesEgalWo und klicke auf Ausführen. - Gib deine Begriffe ein (z. B.
Hund, Katze, Maus) und bestätige mit OK.
Das Makro ist im Dokument gespeichert, wie speichere ich das Makro auf meinem PC oder auf anderen PCs?
Damit das Makro nicht nur in einem speziellen Dokument feststeckt, sondern dir auf deinem gesamten PC (in jeder Word-Datei) oder auf anderen Rechnern zur Verfügung steht, gibt es zwei gängige Wege:
1. Speichern auf deinem PC (Global verfügbar)
Wenn du möchtest, dass das Makro in jedem Word-Dokument funktioniert, das du an deinem PC öffnest, musst du es in die Datei Normal.dotm verschieben. Das ist die globale Standardvorlage von Word.
- Drücke
Alt + F11, um den VBA-Editor zu öffnen. - Suche links im Projekt-Explorer (das Baum-Menü) dein aktuelles Dokument.
- Klicke mit der Maus auf das Modul (z. B. „Modul1“), in dem das Makro steht, und halte die Maustaste gedrückt.
- Ziehe das Modul einfach nach oben auf den Eintrag Normal (oder
TemplateProject (Normal)). - Lasse die Maustaste los. Nun ist eine Kopie des Moduls in deiner globalen Vorlage.
- Drücke
Strg + Sim Editor, um dieNormal.dotmzu speichern.
Ab jetzt kannst du in jedem beliebigen Word-Dokument Alt + F8 drücken und das Makro starten.
2. Exportieren für andere PCs
Um das Makro auf einen anderen Computer zu übertragen, exportierst du es als Datei:
- Öffne den VBA-Editor (
Alt + F11). - Klicke mit der rechten Maustaste auf das Modul (z. B. „Modul1“).
- Wähle Datei exportieren….
- Speichere die Datei (sie hat die Endung
.bas, z. B.TCM_Suche.bas) auf einem USB-Stick oder sende sie per E-Mail. - Auf dem Ziel-PC: Öffne dort Word und den VBA-Editor, klicke rechts auf „Normal“ oder das Projekt des neuen Dokuments und wähle Datei importieren…. Wähle die
.bas-Datei aus.
3. Alternative: Als „Word-Add-In“ (Die sauberste Lösung für andere)
Wenn du das Makro professionell an Kollegen weitergeben willst, speichere dein Dokument als Word-Vorlage mit Makros (.dotm):
- Gehe auf Datei > Speichern unter.
- Wähle als Dateityp Word-Vorlage mit Makros (*.dotm).
- Diese Datei kannst du verschicken. Jeder, der diese Datei öffnet, hat Zugriff auf das Makro.
- Wenn der andere Nutzer die Datei in seinen Ordner
%AppData%\Microsoft\Word\Startuplegt, lädt Word das Makro bei jedem Start automatisch als Add-In mit.