String suchen & ersetzen in Word Dokument

  • VB.NET

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

    String suchen & ersetzen in Word Dokument

    Hallo zusammen,
    ich habe momentan folgendes Problem:
    Ich habe eine Worddatei, die mehrere Platzhalter enthält. Diese möchte ich durch einen anderen Wert aus meinem Programm ersetzen. Der Code

    VB.NET-Quellcode

    1. Dim objWordApp As New Word.Application
    2. Dim objDoc As Word.Document
    3. objWordApp.Visible = True
    4. objDoc = objWordApp.Documents.Open(File)
    5. objDoc = objWordApp.ActiveDocument
    6. objDoc.Content.Find.Execute(FindText:="", ReplaceWith:=strVorname, Replace:=Word.WdReplace.wdReplaceAll)
    7. objDoc.SaveAs(SavePath)
    8. objDoc.Close()
    9. objDoc = Nothing
    10. objWordApp.Quit()
    11. objWordApp = Nothing

    funktioniert bei mir zwar, bei allen anderen Testcomputern (gleiche Office Version, kein VB installiert) bekomme ich aber die Warnung, dass auf einen geschützten Speicher zugegriffen wurde und mein Programm stürzt ab. Da die anderen Rechner Bürorechner sind, wird es wohl kaum möglich sein, dort VB 2010 zu installieren.

    Gibt es einen anderen Weg, einen String in einem Word-Dokument durch einen anderen zu ersetzen?
    Ich benutze nur .doc-Dateien, keine .docx-Dateien, in Notepad++ kann man den Text, in dem bestimmte Platzhalter ersetzt werden sollen, auch sehen/lesen (siehe Screenshot). Der Rest ist allerdings nicht lesbar.
    Mit Replace(find, replace) funktioniert es leider nicht.



    Viele Grüße
    Leo Bernard
    Willst du wirklich nach einem leeren String suchen? FindText:=""

    Du kannst doch in Word ein Macro aufzeichnen, und dieses zum Tauschen
    der Texte verwenden.

    Allerdings sollte es auch möglich sein, mit einem compilierten VB Programm
    auf anderen PCs auf Word zuzugreifen. Wenn das gleiche Framework dort
    installiert ist. Andernfalls schalte doch auf eine niedrigere Frameworkversion
    zurück bevor du compilierst.

    Und wie sieht es mit dem Pfad zum File aus,
    hast du dazu überhaupt die Rechte?
    Oh, Sorry, hab den Code etwas vereinfacht, damit er hier im Forum besser lesbar ist :whistling: Mein Programm arbeitet schon mit .NET 2.0 und die Word Interop DLLs sind mit im Programmordner enthalten.
    Rechte auf die Datei habe ich auch, die liegt in einem Unterordner des AppData Ordners des jeweiligen Nutzers. Daran kann es also auch nicht liegen.

    //EDIT: Macros gehen glaub ich nicht, da ich mehrere Dokumente nacheinander durchgehen muss.

    Trotzdem danke für deine Vorschläge :)

    Viele Grüße
    leolabs