In mehreren Worddokumenten Suchen/Ersetzen durchführen

  • Sonstige

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Mark23.

    In mehreren Worddokumenten Suchen/Ersetzen durchführen

    Hallo zusammen!

    Bin ein absoluter Newbie punkto VBA.

    Ich habe mehrere Worddokumente, die ich mit Suchen/Ersetzen durcharbeiten will.

    Beispiel:
    1. Alle Worddokumente öffnen
    2. Suchen/Ersetzen in allen gleichzeitig mit VBA-Makro
    3. Dokumente sichern und schliessen

    Eventuell könnten die durchsuchten Dokumente gleich gesichert und geschlossen werden?

    Bin um jeden Tipp dankbar.
    :)
    Mark
    Hallo Mark23,

    es mangelt gerade an dem nötigen Einsatz... ich bin müde.

    Hast du den Makrorekorder eingesetzt, um einmal den Quelltext, welcher deim Suchen und Ersetzen aufgerufen wird zu analysieren? Das wäre als erstes wichtig.

    Ich schreibe ungern komplette Quelltexte. Es soll schließlich Leute geben, die für sowetwas Geld bezahlen ;)

    Also... was hast du bisher an Quelltext? Wie siehts mit den bisherigen Programmiererfahrungen aus?

    Gruß Markus

    vorhandener Quelltext

    Hallo Markus

    Der Quelltext ist unten angehängt. Ich habe jedoch keine Befehlszeile gefunden, in der ich bestimmen kann, dass Word in allen offenen Dokumenten das Suchen/Ersetzen ausführt.
    Habe in der Hilfe nachgeschaut, denke es sollte einen Weg geben, wenn die Selection mit etwas anderem ersetzt wird. Aber mit was?

    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
    .Text = ""
    .Replacement.Text = "^s"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = True
    .MatchWholeWord = False
    .MatchByte = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll

    Wenn alle Dokumente zusammen mit Suchen/Ersetzen verarbeitet werden können, gibt es dann die Möglichkeit alle in einem Male zu sichern und zu schliessen?

    Oder: Wenn die Dokumente einzeln mit Suchen/Ersetzen verarbeitet und anschliessend gleich gesichert und geschlossen werden: Gibt es eine Schlaufe, die es erlaubt alle nacheinander zu verarbeiten, ohne dass jedesmal ein Skriptaufruf erfolgen muss?

    Ich weiss nicht, in welche Richtung ich gehen muss/soll.
    Was wäre das einfachste?

    Besten Dank zum voraus.
    :)
    Mark
    Hallo Mark,

    naja der Makrorekorder ist für den Einstieg, damit kann man keine sich wiederholende Prozesse durchführen. Probiere mal dieses:

    Quellcode

    1. Sub test()
    2. Dim strPath As String
    3. Dim i As Long
    4. Dim oDoc As Document
    5. strPath = "C:\kannweg\" 'Hierin wird gesucht
    6. With Application.FileSearch
    7. .LookIn = strPath
    8. .Execute msoSortByFileName
    9. Application.DisplayAlerts = wdAlertsNone 'störende Meld. ausblenden
    10. For i = 1 To .FoundFiles.Count
    11. Set oDoc = Documents.Open(.FoundFiles(i))
    12. With oDoc.Range.Find
    13. .ClearFormatting
    14. .Replacement.ClearFormatting
    15. .Text = "Franz"
    16. .Replacement.Text = "Erwin"
    17. .Forward = True
    18. .Wrap = wdFindAsk
    19. .Format = False
    20. .MatchCase = False
    21. .MatchWholeWord = False
    22. .MatchWildcards = False
    23. .MatchSoundsLike = False
    24. .MatchAllWordForms = False
    25. .Execute Replace:=wdReplaceAll
    26. End With
    27. oDoc.Save
    28. oDoc.Close
    29. Next i
    30. Application.DisplayAlerts = wdAlertsMessageBox
    31. End With
    32. End Sub


    Gruß Markus
    Hallo Markus

    Genau das ist die Verarbeitung, die ich gesucht habe!
    Danke vielmals! :) :) :)

    Ja, mit dem Makrorekorder reicht es nicht bis hierher.
    Mir hat dieser ungemein tolle Dienste geleistet beim Aufzeichnen von Suchen/Ersetzen-Vorgängen, ne tolle Sache für Ab-und-Zu-User.

    Kannst du mir eine Site oder ein Buch empfehlen, das mir als Einsteiger erlauben würde selber auf den richtigen Pfad zu finden, wenn wieder mal so eine Aufgabenstellung vorliegt?

    :)
    Mark