Ich habe eine etwas längere Liste von Zeichen(folgen) die ich in einem Text gegen andere Zeichen ersetzen möchte.
zB ein Wort durch ein anderes
Nun ist es bei Word, so weit mir bekannt, nur möglich dies einzeln zu tun, gibt es eine Möglichkeit eine Liste, aus Excel etwa, abarbeiten zu lassen, oder gibt es ein Programm das diese Arbeit übernehmen kann?
Versuch doch mal in Exel die Zeichen anzulegen. Dann in Word Deinen Text als Serienbrief erstellen und an den Stellen, wo die Wörter getauscht werden sollen, eine Variable einzusetzen. Dann kannst Du anhand Deiner Exeltabelle diese einfügen.
Word bietet da AFAIK keine Hausmittel.
Das müsste mit einem Makro gemacht werden, d.h. ein kleines Programm in Word liest die Excel-Liste (oder CSV) und ruft für jede Zeile in der Liste die Suche/Ersetze-Funktion auf.
Für einen einzelnen Text würde das so aussehen:
With ActiveDocument.Range.Find
.Text = „Suchtext“
.Replacement.Text = „neuer Text“
.Execute
End With
Nun musst Du „nur noch“ die Lesefunktion aus der Datei machen und den alten Text dort eintragen, wo „Suchtext“ steht und den zu ersetzenden Text, wo „neuer Text“ steht.
So wie Du es beschreibst, kenne ich keine Lösung. Sollte es jedoch eine wiederkehrende Arbeit sein, würde sich das Aufzeichnen mit dem Makrorecorder lohnen.
Es gibt eine Excel-Mappe namens „ersetzungsliste.xlsx“, die im gleichen Ordner gespeichert ist wie das Word-Dokument, in dem die Ersetzungen stattfinden sollen.
In Tabelle1, Spalte A dieser Mappe finden sich ab Zeile 2 die alten Begriffe, in Spalte B ab Zeile 2 die neuen.
Das Makro kommt in ThisDocument des Word-Dokuments.
Sub ersetz_aus_excelliste()
Dim excelinstanz As Object
Dim excelmappe As Object
Dim datei As String
datei = ThisDocument.Path & „\ersetzungsliste.xlsx“
Dim alterbegriff As String, neuerbegriff As String
Dim i As Integer
i = 1
On Error Resume Next
Set excelinstanz = GetObject(, „Excel.Application“) 'wenn das Programm schon läuft
If Err 0 Then
Set excelinstanz = CreateObject(„Excel.application“) ’ wenn nicht, dann erst starten
End If
excelinstanz.Visible = True 'nur zum Testen
On Error GoTo fehler
Set excelmappe = excelinstanz.workbooks.Open(FileName:=datei) 'Mappe öffnen
Do
i = i + 1
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = excelmappe.sheets(„Tabelle1“).Cells(i, 1).Value
If .Text = „“ Then Exit Do
.Replacement.Text = excelmappe.sheets(„Tabelle1“).Cells(i, 2).Value
.Forward = True
.Wrap = wdFindContinue
.Format = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Loop
MsgBox „fertig“
excelmappe.Close
excelinstanz.Visible = True
excelinstanz.Quit
Set excelmappe = Nothing
Set excelinstanz = Nothing
Exit Sub
fehler:
MsgBox Err.Description & " - " & Err.Number
excelmappe.Close
excelinstanz.Visible = True
excelinstanz.Quit
Set excelmappe = Nothing
Set excelinstanz = Nothing
End Sub
Hm, bin mir nicht sicher ob ich genau verstehe was du meinst. Kannst du mir vielleicht ein konkretes Beispiel geben? Allenfalls kannst du auch folgendes probieren:
Ganzen Text markieren
CTRL+H (Find/replace) z.B. alle „Abend“ mir „Morgen“ ersetzen
Dan werden alle „Abend“ im Text auf einmal ersetzt.
ein Makro wäre wahrscheinlich möglich nachträglich zu ändern ohne über die Ersetzenfunktion zu arbeiten (kann ich nicht)
Wenn der Text noch nicht geschrieben ist funktioniert es wie folgt:
Gib Deine Liste ein unter:
Word-Optionen - Dokumentenprüfung - Auto-Korrektur-Optionen. Da habe ich schon diverse Wörter ergänzen lassen - Nachteil es funktioniert dann aber auf alle Word-Dokumente und dein spezielles Wort wird immer ersetzt. Also entsprechend das Wort als Code auswählen, damit nicht unbeabsichtigt immer geändert wird.
Gruß SKH
gibt es eine Möglichkeit eine Liste, aus Excel
etwa, abarbeiten zu lassen, oder gibt es ein Programm das
diese Arbeit übernehmen kann?
ist nicht bös gemeint, aber es häufen sich die Fragen, die sich durch eine einfache Google Suche in 10 min. beantworten lassen, und dafür ist dieses Forum meines Erachtens nicht da…
Aber hier das Ergebnis (Suche „mehrere worte in word ersetzen“)
wenn Du eine solche Arbeit öfter bzw. bei verschiedenen Texten machen lassen willst, kannst Du ein Makro schreiben. Das Makro erstellst Du entweder im Makroeditor von Word oder Du rufst den Makrorecorder auf und exerzierst das Procedere „suchen-ersetzen - alle ersetzen“ einmal durch. Dann kannst Du im Makroeditor die Passage so oft kopieren, wie Du sie brauchst und jeweils die zu ersetzenden Zeichen einfügen und ebenso deren Ersetzungen. Makro speichern und die Sache ist erledigt. Wenn Du mit Makros keine Erfahrungen hast, bitte unbedingt die Originaldatei extra speichern! Dann in der Hilfe von Word ein wenig lesen… viel Spaß! Im Moment bin ich ein wenig im Zeitdruck. Falls es nicht klappt, melde Dich nochmal, dann mach ichs genauer… Viele Grüße