marcoborn
Goto Top

Word-VBA: Formatierung von Text

Hallo Forum,
ich möchte gern per VBA Text in ein Word-Dokument schreiben, welcher unterschiedlich formatiert ist. Z.B:

Name: Mustermann, Max

Bisher habe ich dazu 3mal TypeText verwendet und jeweils nach dem ersten und dritten Mal die Formatierung auf Fett bzw. Kursiv umgestellt Kann das Ganze auch zuvor in Form einer Variable zusammengebaut werden, wobei die 3 Teilstrings die Formatierung erhalten, bevor sie per TypeText in das Dokument geschrieben werden?

Vielen Dank im voraus,
M. Born

Content-Key: 1708955863

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

Printed on: April 20, 2024 at 01:04 o'clock

Mitglied: 149569
Solution 149569 Jan 10, 2022 updated at 16:19:43 (UTC)
Goto Top
Formatierungen können nur auf bereits im Dokument vorhandene Ranges angewendet werden. Da man keinen leeren Range anlegen kann (sowas wie Dim r as new Range geht nicht) muss der Text also entweder schon im Dokument eingetragen sein oder man formatiert einen Range vorher und fügt dann einen Text ein.
Btw. TypeText muss man nicht unbedingt verwenden, man kann auch die Text-Eigenschaft eines Range-Objekts verwenden um den Text zuzuweisen.
Member: MarcoBorn
MarcoBorn Jan 10, 2022 at 16:38:13 (UTC)
Goto Top
Vielen Dank. Ist zwar ziemlich umständlich gelöst, aber mehr scheint das Objektmodell dann doch nicht herzugeben.
Mitglied: 149569
149569 Jan 10, 2022 updated at 17:13:35 (UTC)
Goto Top
Zitat von @MarcoBorn:

Vielen Dank. Ist zwar ziemlich umständlich gelöst, aber mehr scheint das Objektmodell dann doch nicht herzugeben.
Musst du dir halt ein Plugin schreiben das formatierten RTF Text über die Zwischenablage via Paste einfügt wenn das gewünschte möglich werden soll.
https://stackoverflow.com/questions/63716400/injecting-rtf-code-in-the-c ...
Member: MarcoBorn
MarcoBorn Jan 11, 2022 at 05:48:41 (UTC)
Goto Top
Wollte meinen Code etwas beschleunigen, da er ca. 1h braucht, um durchzulaufen, indem ich möglichst viel "im RAM" abarbeiten wollte, bevor ich auf Word zugreife. Aber so viel Aufwand will ich nun auch nicht treiben, nur dass er dann in 50 Min. fertig ist. Aber trotzdem danke für den Hinweis.