Announcement

Collapse
No announcement yet.

Text in Word suchen und ersetzten - auch in Kopfzeilen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Text in Word suchen und ersetzten - auch in Kopfzeilen

    Hallo ,

    ich habe eine kleine Prozedur in Delphi 5 geschrieben, die in einem Worddokument (hier Office 2007) verschiedene Platzhalter sucht und die durch einen Text ersetzt.

    Beispiel: sucht im Dokument den Text "#Betreff#" und ersetzt ihn duch den Inhalt des Felds "edtTer_Betreff.Value"

    ....
    wrdApp := CreateOLEObject('Word.Application');

    wrdDoc := wrdApp.Documents.open(aVorlage);

    wrdDoc.Content.Find.Execute(FindText := '#Betreff#',
    ReplaceWith := Replace(edtTer_Betreff.Value, #13 + #10, #13) ,
    Replace := wdReplaceAll);
    ...

    Das Ganze funktioniert aber nicht wenn der Platzhalter in einer Kopfzeile steckt.

    Kann mit da jemnad weiterhelfen ?
    tia

    Bettina

  • #2
    Hi,

    Suchen und Ersetzen im gesamten Dokument funktioniert nur in der Normalansicht.

    Gruß frauwue
    docendo discimus

    Comment


    • #3
      Hi,

      und wie starte ich Word aus Delphi in der Normalansicht?

      Danke

      Bettina

      Comment


      • #4
        Code:
        wrdDoc.ActiveWindow.View.Type := wdNormalView;

        Comment


        • #5
          Hallo Markus,

          danke für die Antwort, aber bei mir (Office 2007) funktioniert das Ersetzten trotzdem nicht.
          Ich habe jetzt alle ViewTypes getestet (Word startet auch jedesmal in einer anderen Ansicht) aber der Text in der Kopfzeile wird nicht ersetzt.

          Wäre dankbar für jeden weitern Tipp.

          Danke

          Bettina

          Comment


          • #6
            Hi,

            versuche doch, per Makro-Befehl explizit in die Kopfzeile zu gehen und
            dann das Suchen und Ersetzen ein zweites Mal auszuführen.

            Gruß frauwue
            docendo discimus

            Comment


            • #7
              Hi,
              so funktioniert es; Danke.

              Gruß Bettina

              Comment


              • #8
                Hallo Bettin,
                hier meine Vorschläge zur Lösung Deines Problemes:

                1. Auf Kopfbereich umschalten
                WordDocument1.ConnectTo(WordApplication1.ActiveDoc ument);
                WordApplication1.ActiveWindow.ActivePane.View.Type _ := wdPageView;
                WordApplication1.ActiveWindow.ActivePane.View.Seek View := wdSeekCurrentPageHeader;
                WordApplication1.Selection.HeaderFooter.LinkToPrev ious := False;

                2. Auf Fussbereich umschalten
                WordDocument1.ConnectTo(WordApplication1.ActiveDoc ument);
                WordApplication1.ActiveWindow.ActivePane.View.Type _ := wdPageView;
                WordApplication1.ActiveWindow.ActivePane.View.Seek View := wdSeekCurrentPageFooter;
                WordApplication1.Selection.HeaderFooter.LinkToPrev ious := False;

                3. Auf Hauptbereich umschalten
                WordDocument1.ConnectTo(WordApplication1.ActiveDoc ument);
                WordApplication1.ActiveWindow.ActivePane.View.Type _ := wdPageView;
                WordApplication1.ActiveWindow.ActivePane.View.Seek View := wdSeekMainDocument;

                Comment

                Working...
                X