PDA

Vollständige Version anzeigen : Text in Fließtext in Word via VBA einsetzen


cMaster
17.08.2009, 10:59
Hallo, guten Morgen!

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 ;)

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.

PapaSchlumpf
17.08.2009, 11:50
Hi
hab ich jetzt nicht wirklich verstanden was du willst.

Soll es eine "feste" Stelle im Fließtext sein, kannst du eine geschlossene Textmarke verwenden und diese immer wieder mit variablen Text befüllen.

z.B. mittels folgendem Makro
Function ReplaceBookmarkText(oDoc As Document, strBMName As String, strBMText As String) As Boolean
Dim oRNG As Range
ReplaceBookmarkText = False
If oDoc.Bookmarks.Exists(strBMName ) Then
Set oRNG = oDoc.Bookmarks(strBMName ).Range
oRNG.Text = strBMText
oDoc.Bookmarks.Add strBMName , oRNG
ReplaceBookmarkText = True
End If
End Sub

Sub Aufruf()
ReplaceBookmarkText ActiveDocument, "TextmarkenName", "Neuer Textmarkeninhalt"
' oder
If ReplaceBookmarkText (ActiveDocument, "TextmarkenName", "Neuer Textmarkeninhalt") = True Then
Msgbox "Ersetzung hat geklappt"
End If
End Sub

HTH
PS

cMaster
20.08.2009, 15:29
Hi PapaSchlumpf,
Hi Community,

ich glaube das ist das, was ich suche. Ich habe mit Textmarken jetzt auchmal noch etwas rumgetestet, und habe jetzt mal folgende Bsp-Datei erstellt:

{ SET tm1 "tm1 mit Inhalt." }
{ SET tm2 "tm2 inkl. weiterem Content" }
{ SET datum "12.05.1993" }
{ SET satz "Franz jagt im komplett verwahrlosten Taxi quer durch Bayern." }

Datum: { REF datum }

Valleri, Vallera, jaja, der Fließtext, der steht jetzt da. { REF tm1 } Hier usw. { REF
satz }

{ REF tm2 }

Wenn ich den Inhalt der SET-Felder jetzt aktualisiere, und dann das SET- und das dazugehörige REF-Feld aktualisiere, dann wird der Inhalt des SET-Feldes an der Stelle des REF-Feldes angezeigt.

Soweit funktioniert das.

Gibt es da noch eine einfache und/oder bessere Umsetzungsmglk.?

Mein Problem an der Stelle jetzt: Wie kann ich den SET-Feledern mittels VBA einen neuen Inhalt zuweisen?

Und, kann ich einstellen, dass die Felder automatisch aktualisiert werden, oder wie kann ich die dann mittels VBA aktualisieren?

Gruß Stefan