cmaster
Goto Top

Text in Fließtext in Word via VBA einsetzen

Hallo, guten Abend!

Ich habe eine vorgefertigte Word-Vorlage, in die ich in den Fließtext an bestimmte Stellen Daten mittels eines Makros einsetzen muss.
Wie lässt sich das am besten realisieren, dass ich diese Daten per VBA auch an die entsprechende Stelle in meinen Fließtext bekomme?
Ich habe dabei an so Felder gedacht, die man auch mittels der F11-Taste anspricngen kann, aber wie kann man die ausm VBA raus ansprechen?
Oder gibts da vllt. noch ne elegantere Lösung? Sollten, nach Möglichkeit, Felder sein, die immer wieder angesproch werden können, und der Inhalt durch erneutes Zuweisen von Daten durch das VBA-Script ausgetauscht werden kann.
Weil Labels, oder andere Objekte kann ich nicht nehmen, da die Daten ja im Fließtext sein sollen, und auch mehrzeilig sein können. Bei ner Website hätte ich da nen span-Element genommen, welches ich vom JS aus hätte ansprechen können face-wink

Hat mir da jemand ne Lösung oder irgend ne Idee, wie ich an dieser Stelle meines Problems weiter kommen könnte?

Vielen Dank

Gruß Stefan

PS: Sollte mit Word 2003 realisierbar sein.

Content-ID: 122635

Url: https://administrator.de/contentid/122635

Ausgedruckt am: 25.11.2024 um 20:11 Uhr

SystemZero
SystemZero 13.08.2009 um 09:55:26 Uhr
Goto Top
Hallo,

also ich würde als Felder in die der Benutzer den Text eingibt normale "Textfelder" aus der Steuerelemente-Toolbox verwenden. In den Eigenschaften des Textfeld's die Eigenschaft "Multi-Line" auf True und dann sind auch mehrzeilige Text möglich.

Zum Ersetzen der bestimmten Textstellen gibt es zwei Möglichkeiten.

1. Am Ende (nach allen Benutzereingaben), hier kannst du z.B. mit der Funktion instr() nach den bestimmten Wörter, Zeichen, etc. in den einzelnen Textfeldern suchen und bekommst die genaue Position zurück geliefert. Du kannst aber auch gleich mit der Funktion replace() die entsprechenden Wörter, Zeichen durch andere ersetzen.

2. Bei jeder Eingabe in die Textbox die komplette Textbox auf das auftreten bestimmter Wörter, Zeichen durchsuchen und ersetzen. Das ist aber mit VBA nicht sehr Ressourcen schonend, sollte aber zum Beispiel mit einer Überprüfung im "Key-Press"-Ereignis der Textbox möglich sein.


MfG
cMaster
cMaster 13.08.2009 um 21:59:16 Uhr
Goto Top
Hi SystemZero,

der Text, der in den Fließtext eingesetzt werden soll, wird nicht vom Benutzer eingegeben, sondern wird aus einer Datenbank ausgelesen, was heißt, dass ich kein Textfeld benötige.

Das mit der Replacefunktion wäre eine Mglk., aber das ist dann 1x möglich, und dann ist der Platzhalter ersetzt, und ich kann nicht erneut anderen Inahlt einfügen, und somit den alten quasi ersetzen.

Aber meines Wissens nach gibt es ja in der Steuerelementtoolbox nur Objekte, die rechteckig sind, was mir letztenendes auch nichts bringt, wenn ich da dann irgend nen rechteckigen kasten hab, der mitten im Fließtext sitzt, aber dessen Text nicht mit dem Fließtext des Blattes fließt (also: bspw. eine angefangene Zeile bis zum Ende fertig schreibt, und dann wieder in der nächsten Zeile ganz links beginnt....)

Gruß Stefan