Kann ich in Word nicht nur nach einem Wort sondern mehreren Wörtern auf allen Ebenen suchen und die Treffer gelb hinterlegen?

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.

  1. Drücke Alt + F11, um den VBA-Editor zu öffnen.
  2. Suche links im Projekt-Explorer (das Baum-Menü) dein aktuelles Dokument.
  3. Klicke mit der Maus auf das Modul (z. B. „Modul1“), in dem das Makro steht, und halte die Maustaste gedrückt.
  4. Ziehe das Modul einfach nach oben auf den Eintrag Normal (oder TemplateProject (Normal)).
  5. Lasse die Maustaste los. Nun ist eine Kopie des Moduls in deiner globalen Vorlage.
  6. Drücke Strg + S im Editor, um die Normal.dotm zu 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:

  1. Öffne den VBA-Editor (Alt + F11).
  2. Klicke mit der rechten Maustaste auf das Modul (z. B. „Modul1“).
  3. Wähle Datei exportieren….
  4. Speichere die Datei (sie hat die Endung .bas, z. B. TCM_Suche.bas) auf einem USB-Stick oder sende sie per E-Mail.
  5. 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):

  1. Gehe auf Datei > Speichern unter.
  2. Wähle als Dateityp Word-Vorlage mit Makros (*.dotm).
  3. Diese Datei kannst du verschicken. Jeder, der diese Datei öffnet, hat Zugriff auf das Makro.
  4. Wenn der andere Nutzer die Datei in seinen Ordner %AppData%\Microsoft\Word\Startup legt, lädt Word das Makro bei jedem Start automatisch als Add-In mit.