Word Seitenränder einrichten

11. Februar 2008 15:04

Hallo,

ich hab ein Problem bei der Word-Ansteuerung von Navision aus.
Ich möchte vor dem Füllen eines Worddokumentes die Seitenränder ändern. Dies gelingt mir leider nicht.

Der VB-Code für dies ist:

Code:
WordBasic.PageSetupMargins Tab:=0, PaperSize:=0, TopMargin:="1.5", _
        BottomMargin:="1.5", LeftMargin:="1", RightMargin:="1", Gutter:="0", _
        PageWidth:="21", PageHeight:="29.7", Orientation:=0, FirstPage:=0, _
        OtherPages:=0, VertAlign:=0, ApplyPropsTo:=4, FacingPages:=0, _
        HeaderDistance:="1.25", FooterDistance:="1.25", SectionStart:=2, _
        OddAndEvenPages:=0, DifferentFirstPage:=0, Endnotes:=0, LineNum:=0, _
        CountBy:=0, TwoOnOne:=0, GutterPosition:=0, LayoutMode:=0, DocFontName:= _
        "", FirstPageOnLeft:=0, SectionType:=1, FolioPrint:=0, ReverseFolio:=0, _
        FolioPages:=1


Auschnitt meines C/AL Codes:


Code:
FNK_PageMargin(PAR_Left : Decimal;PAR_Right : Decimal;PAR_Top : Decimal;PAR_Bottom : Decimal)
WdSelec := WdApp.Selection;
WdPageSetup := WdSelec.PageSetup;
WdPageSetup.TopMargin := PAR_Top;
WdPageSetup.BottomMargin := PAR_Bottom;
WdPageSetup.LeftMargin := PAR_Left;
WdPageSetup.RightMargin := PAR_Right;


Diese Funktion rufe ich mit folgender Zeile auf:

Code:
FNK_PageMargin(1.0,1.0,1.5,1.5);


Bei der Word-Ansteuerung wird der Befehl zwar angenommen aber es werden nicht die Dezimal-Werte angenommen die ich mitgebe. Das Word Dokument hat dann die Seitenränder:
Oben: 0,05cm statt der 1,0 cm
Unten: 0,05 cm statt der 1,0cm
Rechts: 0,04 cm statt der 1,5 cm
Links: 0,04 cm statt der 1,5 cm

Da der VB-Code eigentlich "WordBasic.PageSetupMargins ..." lautet und ich aber den Befehl "PageSetup. ..." könnte es auch an dem liegen. Jedoch wird der Befehl Wdapp.Wordbasic.PageSetupMargins" zwar angenommen es kommt jedoch die Meldung: "Bei dieser Funktion mit Rückgabewert arbeiten"

Kann mir da jemand weiterhelfen?

EDIT: Thema kann geschlossen werden. Habe mittlerweile die Lösung gefunden - irgendwo in den Tiefen der MSDN Library... :-)

Die Lösung ist:

Man muss die Zentimeter in Points umrechnen. 1cm entspricht 28,35 Points. Dann "Point"-Wert übergeben und schon funktionierts :wink: