Jag begriper inte riktigt varför koden här nedanför inte fungerar... Kan någon hjälpa? Vad som händer är att den sista textraden inte skrivs i dokumentet utan i sidhuvudet. Kör jag koden som makro i Word så fungerar det klockrent, men när jag kör koden via mitt VB-program så skiter det sig. Ideer? Jag hittade vad som var problemet... Man måste tydligen inleda med följande rader för att det skall fungera:Varför fungerar inte detta? Texten skrivs på fel ställe...
<code>
Dim wrd As New Word.Application
wrd.Visible = False
Dim wrddoc As Word.Document
Set wrddoc = wrd.Documents.Add
'Set wrddoc = New Word.Document
wrddoc.Activate
With wrddoc
.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
.Range.Select
wrd.Selection.TypeText "Sidhuvudet är här!"
wrd.Selection.TypeParagraph
wrd.Selection.TypeText "asdf asdf asdf"
With wrd.Selection.ParagraphFormat
.Borders(wdBorderLeft).LineStyle = wdLineStyleNone
.Borders(wdBorderRight).LineStyle = wdLineStyleNone
.Borders(wdBorderTop).LineStyle = wdLineStyleNone
With .Borders(wdBorderBottom)
.LineStyle = wdLineStyleSingle
.LineWidth = wdLineWidth050pt
.Color = wdColorAutomatic
End With
With .Borders
.DistanceFromTop = 1
.DistanceFromLeft = 4
.DistanceFromBottom = 1
.DistanceFromRight = 4
.Shadow = False
End With
End With
With wrd.Options
.DefaultBorderLineStyle = wdLineStyleSingle
.DefaultBorderLineWidth = wdLineWidth050pt
.DefaultBorderColor = wdColorAutomatic
End With
.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
With wrd.Selection.ParagraphFormat
.Borders(wdBorderLeft).LineStyle = wdLineStyleNone
.Borders(wdBorderRight).LineStyle = wdLineStyleNone
With .Borders(wdBorderTop)
.LineStyle = wdLineStyleSingle
.LineWidth = wdLineWidth050pt
.Color = wdColorAutomatic
End With
.Borders(wdBorderBottom).LineStyle = wdLineStyleNone
With .Borders
.DistanceFromTop = 1
.DistanceFromLeft = 4
.DistanceFromBottom = 1
.DistanceFromRight = 4
.Shadow = False
End With
End With
With wrd.Options
.DefaultBorderLineStyle = wdLineStyleSingle
.DefaultBorderLineWidth = wdLineWidth050pt
.DefaultBorderColor = wdColorAutomatic
End With
wrd.Selection.TypeText Text:="Sidfoten är också här."
wrd.Selection.TypeParagraph
wrd.Selection.TypeText Text:="asdf"
wrd.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
' Denna raden hamnar i sidhuvudet och inte som första rad i dokumentet...ARGH!
wrd.Selection.TypeText Text:="I och med detta är hela texten ifylld."
End With
Call wrddoc.SaveAs("C:\tmp\testdoc.doc", , , , True)
Call wrddoc.Close
Set wrddoc = Nothing
Call wrd.Quit
Set wrd = Nothing
</code>Sv: Varför fungerar inte detta? Texten skrivs på fel ställe...
<code>
If .ActiveWindow.View.SplitSpecial <> wdPaneNone Then
.ActiveWindow.Panes(2).Close
End If
If .ActiveWindow.ActivePane.View.Type = wdNormalView Or .ActiveWindow.ActivePane.View.Type = wdOutlineView Then
.ActiveWindow.ActivePane.View.Type = wdPrintView
End If
</code>
Varför vet jag inte... men nu hamnar all text rätt...