Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#23

AW: Word Automatisation Beschleunigen

  Alt 14. Mär 2020, 12:27
Code:
Sub TBrange()
    Dim bRange As Range
    '
    If ActiveDocument.Bookmarks.Exists("F1") Then
        Set bRange = ActiveDocument.Bookmarks("F1").Range
        bRange.Text = "der Text"
    End If
    '
    ' Textmarke recykeln
    With ActiveDocument.Bookmarks
        .Add Range:=bRange, Name:="F1"
    End With
End Sub
Wir haben das gleiche Prinzip in einem alten Delphiprojekt genutzt. Also Ranges über Bookmarks definiert und neu befüllt, gesetzt. Wenn ich mich richtig erinnere war es das beste/schnellste Ergebnis von verschiedenen Varianten / Versuchen (und damals nicht selbstverständlich, es war robust).
Das war allerdings ohne Exists Prüfung, sondern eine Iteration in einem gegebenen Dokument durch die Liste der definierten Bookmarks.
Auf die Art konnte man beliebig große Feldinhalte befüllen und das Ganze auch bei mehrseitigen Dokumenten so schnell, dass man mit einem System/Mitarbeiter mehrere Hochleistungsdrucker in Betrieb halten kann.
Man muss nur aufpassen, dass man sich bei der Arbeit mit den Dokumenten nicht unbemerkt die Bookmarks zerstört. Aber vielleicht kann man das mit neueren Wordversionen auch besser sehen und bedienen.
Drumrum war noch eine Gesamtseitenkontrolle, um Fehldrucke/Fehlbefüllung zu erkennen und einseitig/mehrseitiges vorbedrucktes Papier nicht falsch zu bedrucken.
Gruß, Jo
  Mit Zitat antworten Zitat