Sub MarkiereInquits() Dim doc As Document Dim rng As Range, nextRng As Range Dim i As Long Dim txt As String Dim posDoppelpunkt As Long, posAnf As Long Dim paraRede As Paragraph, paraNext As Paragraph Set doc = ActiveDocument ' Farben zurücksetzen doc.Range.Font.Color = wdColorAutomatic For i = 1 To doc.Sentences.count Set rng = doc.Sentences(i) txt = rng.Text ' enthält Anführungszeichen? If txt Like "*[»«„“" & Chr(34) & "]*" Then posDoppelpunkt = InStrRev(txt, ":") posAnf = InStr(txt, "»") If posAnf = 0 Then posAnf = InStr(txt, "„") If posAnf = 0 Then posAnf = InStr(txt, Chr(34)) If posDoppelpunkt > 0 And posAnf > posDoppelpunkt Then ' vor Doppelpunkt blau With rng.Duplicate .End = .Start + posDoppelpunkt .Font.Color = wdColorBlue End With ' ab Anführungszeichen rot With rng.Duplicate .Start = .Start + posAnf - 1 .Font.Color = wdColorRed End With Else ' sonst alles rot rng.Font.Color = wdColorRed End If ' nächsten Satz prüfen If i < doc.Sentences.count Then Set nextRng = doc.Sentences(i + 1) ' Paragraph-Objekte der beiden Sätze vergleichen Set paraRede = rng.Paragraphs(1) Set paraNext = nextRng.Paragraphs(1) If paraRede.Range.Start = paraNext.Range.Start Then ' nur wenn beide im selben Absatz stehen nextRng.Font.Color = wdColorBlue End If End If End If Next i MsgBox "Fertig: Wörtliche Rede rot, vor Doppelpunkt & direkt danach (im selben Absatz) blau." End Sub