Texthervorhebungsfarbe in Word entfernen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Texthervorhebungsfarbe in Word entfernen

    Hallo,

    über eine VB.Net Anwendung bearbeite ich eine Word-Datei. Es werden diverse Platzhalter durch die tatsächlichen texte ersetzt. Um in der Word-Datei die Platzhalter auf einen Blick zu erkennen habe ich diese mittels Texthervorhebungsfarbe (was für ein Wort) hinterlegt. Nun würde ich gerne die Hinterlegung entfernen, wenn ein Platzhalter ersetzt wird. Ich habe aber absolut nichts gefunden, wie ich das Bewerkstelligen kann. Da ich nicht ausschließen kann, das irgendwann in den Dokumenten aktiv mit dieser Texthervorhebungsfarbe an anderen Stellen gearbeitet wird, sollte diese tatsächlich nur bei den Platzhaltern ersetzt werden.
    Falls es andere Möglichkeiten gibt, die Platzhalter zu formatieren, welche sich dann hinterher leichter ersetzen lassen, so lasse ich mich gern überzeugen. Lediglich an Textfarbe/-größe und Schriftart will ich nichts ändern.
    Zum ersetzen der Platzhalter benutze ich folgenden Code:

    VB.NET-Quellcode

    1. With wdDoc.Range.Find
    2. .Text = strTextmarke
    3. '.ClearFormatting()
    4. .Replacement.Text = lstInhalt(intInhalt)
    5. .Execute(Replace:=Word.WdReplace.wdReplaceAll)
    6. End With
    Laut Makrorecorder geht es damit weiter:

    VB.NET-Quellcode

    1. Word.Options.DefaultHighlightColorIndex = 0 '= wdNoHighlight
    2. Word.Selection.Range.HighlightColorIndex = 0 '= wdNoHighlight
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Dann eben einzeln ersetzen:

    VB.NET-Quellcode

    1. With Word.Selection.Find
    2. .Text = "DeinPlatzhalter"
    3. .Replacement.Text = "DeinEchterText"
    4. .Forward = True
    5. .Wrap = Microsoft.Office.Interop.Word.WdFindWrap.wdFindContinue
    6. .Format = False
    7. .MatchCase = False
    8. .MatchWholeWord = False
    9. .MatchWildcards = False
    10. .MatchSoundsLike = False
    11. .MatchAllWordForms = False
    12. End With
    13. Word.Selection.Find.Execute()
    14. For i = 1 To 100
    15. Word.Options.DefaultHighlightColorIndex = 0
    16. Word.Selection.Range.HighlightColorIndex = 0
    17. With Word.Selection
    18. .Collapse(Direction:=1)
    19. .Find.Execute(Replace:=1)
    20. End With
    21. Next

    Das mit den 100x ist vielleicht ein bisken Overkill, aber das sind m.E. momentan Feinheiten.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.