Hallo Leute
Ich verzweifel schön langsam mit diesem Drecks-Word. So nebenbei: ich habe Word 2003 SR2 auf Windows XP SP2. Und zwar schaffe ich es nicht, per Makro NumPages-Felder im Dokumente sauber zu aktualisieren, sobald DocVariable-Felder im Dokument vorkommen und mit dem selben Makro aktualisiert werden sollen.
Hintergrund: Eine externe Anwendung stellt Daten in einer Datei zur Verfügung. Mein Makro liest diese Daten aus und befüllt damit Dokumentvariablen. Diese werden über DocVariable-Felder im Dokument angezeigt. Am Ende des Makros werden alle DocVariable-Felder aktualisiert, damit der aktuelle Inhalt angezeigt wird.
Nun habe ich versucht, zusätzlich NumPages-Felder einzubauen, weil in manchen Fällen die Anzahl der Seiten benötigt wird. Hier mein Code zum aktualisieren der Felder:
Dim Feld as Fields
for each feld in activedocument.fields
if feld.type = wdfielddocvariable or feld.type = wdfieldnumpages then
feld.update
end if
next
Denkste: kommt das NumPages-Feld nicht vor den DocVariable-Feldern im Dokument vor, wird es nicht aktualisiert. Durch Aufteilen der Schleife auf zwei Teile, also einmal die DocVariable-Felder und einmal die NumPages-Felder aktualisieren, habe ich es zumindest geschafft, das erste NumPages-Feld zu aktualisiere, egal an welcher Position im Dokument. Aber die anderen NumPages-Felder werden weiterhin nicht aktualisiert. Habs auch schon mit einem ActiveDocument.Fields.Update probiert - ebenfalls ohne Erfolg. Habe den Code schon auf alle möglichen Arten modifiziert und mitgetraced - das Makro aktualisiert immer nur das erste NumPages-Feld.
Natürlich kann man mit strg-a und f9 auch die Felder aktualisieren. Die Leute vergessen das aber hin und wieder und die Anzahl der Seiten im Dokument ist teilweise für das Dokument extrem wichtig (hat rechtliche Gründe). Automatisches Aktualisieren beim Drucken ist auch nicht, da die Dokumente vollelektronisch vearbeitet und im Optimalfall niemals gedruckt werden.
Noch eine Randbedingung: Mein Makro wird automatisiert von ausserhalb von Word aufgerufen. Der Benutzer kann in diesen Vorgang nicht eingreifen. Anschließend ist das Dokument schreibgeschützt und es sind keine Änderungen am Dokument mehr möglich. Alle Lösungen, die eine Benutzerinteraktion in welcher Form auch immer erfordern, scheiden damit aus.
Kennt jemand das Problem und vor allem eine Abhilfe? Ich habe jetzt schon genug Zeit damit vertan…
LG
Erwin
PS: Und NEIN, Umstieg auf eine andere Software ist leider keine Option.