
In meinem Text kommt [Wort]-[Wort] mehrfach vor, z. B. „self-interest“ statt „self-interest“, was die korrekte Form ist. Ich versuche, das überflüssige Leerzeichen nach dem Strich mithilfe der Platzhalter von MS Word zu entfernen. In das Feld „Suchen und Ersetzen“ gebe ich ein:
Suchen: *- *
Ersetzen durch: \1-\2
Es funktioniert jedoch nicht. Was ist die richtige Form, um dies zu erreichen?
Antwort1
VBA:
Im Word-Dokument ausführen WrapReplace
.
Sub WrapReplace()
Call RegExpReplace("(\w+)\-\s(\w+)", "$1-$2")
End Sub
Private Sub RegExpReplace(pattern As String, Backreference As String)
Dim strReplacement As String
Set oRegExp = CreateObject("VBScript.RegExp")
With oRegExp
.Global = True
.IgnoreCase = False
.pattern = pattern
End With
Set matches = oRegExp.Execute(ActiveDocument.Content)
For Each match In matches
Set matchRange = ActiveDocument.Content
strReplacement = oRegExp.Replace(match.Value, Backreference)
With matchRange.Find
.Text = match.Value
.Replacement.Text = strReplacement
.Wrap = wdFindAsk
.Execute Replace:=wdReplaceOne
End With
Next
End Sub