Word12 - Text per Formatvorlage (Styles) formatieren

3. September 2010 14:01

Heyho,

ich arbeite an einem Report, der anhand einer Vorlage ein Word-Dokument erstellt. Soweit klappt alles ganz gut. Für das Inhaltsverzeichnis ist es jedoch wichtig, daß Absatzüberschriften nicht einfach nur fett, kursiv oder unterstrichen sind. Sie sollen mit der Formatvorlage "Überschrift 1" formatiert werden.

Der zugehörige VB-Code aus dem Makro-Recorder sieht so aus:

Code:
Selection.Style = ActiveDocument.Styles("Überschrift 1")


Folgende Varianten habe ich in Navision 2009 SP1 probiert:
Globale Variable: gatWordAppl, Automation, 'Microsoft Word 12.0 Object Library'.Application
gTxWrdTextCap1: Textkonstante mit Wert "Überschrift 1"

Code:
1.
gatWordAppl.Selection.Style := gatWordAppl.Documents.Item(gtxFilename).styles.item(gTxWrdTextCap1);

2.
gatWordAppl.Selection.Style(gatWordAppl.Documents.Item(gtxFilename).styles.item(gTxWrdTextCap1));

3.
ltxStyle := format(gatWordAppl.Documents.Item(gtxFilename).styles.item(gTxWrdTextCap1));
evaluate(linStyle,ltxStyle);
gatWordAppl.Selection.Style := linStyle;


Immer kommt die Fehlermeldung:

Dieser Datentyp wird von C/SIDE nicht unterstützt.
Sie haben Zugriff auf Daten der folgenden Datentypen:
VT_VOID, VT_I2, VT_I4, VT_R4, VT_R8, VT_CY, VT_DATE,VT_BSTR und VT_BOOL

Langsam weiß ich nicht mehr weiter ...

Weiß jemand, wie ich das Problem in den Griff bekomme oder kann einen Tipp abgeben, wie man aus C/SIDE heraus Formatvorlagen aufrufen kann?

LG
Thomas

Re: Word12 - Text per Formatvorlage (Styles) formatieren

3. September 2010 15:35

Update:

Folgender Code funktioniert

Code:
gatWordAppl.Selection.Style := gatWordAppl.Documents.Item(gtxFilename).Styles.Item(linStyleID);


Statt den Namen der Vorlage, übergebe ich eine Integervariable (linStyleID). Gibt es eine Möglichkeit, die ID einer bestimmten Wordvorlage zu ermitteln, OHNE alle vorhandenen IDs durchzuprobieren? Gerne auch per VB-Script.

LG
Thomas