WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

OLE with Word

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

Changing Word Page Header


Question:

I am trying to modify a Microsoft word page header from a Winbatch program. If I record a macro to do the same thing I get the code listed below. However, I don't seem to be able to translate it to Winbatch. I keep getting errors. Can you help?
VBA Code:
Sub headertest()
'
' headertest Macro
' Macro recorded 01/15/04 by Lorraine Barrow
'
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Or ActiveWindow.ActivePane.View.Type _
= wdMasterView Then
ActiveWindow.ActivePane.View.Type = wdPageView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.TypeText Text:="Job No: "
If Selection.Font.Underline = wdUnderlineNone Then
Selection.Font.Underline = wdUnderlineSingle
Else
Selection.Font.Underline = wdUnderlineNone
End If
Selection.TypeText Text:="831E-202A/B "
If Selection.Font.Underline = wdUnderlineNone Then
Selection.Font.Underline = wdUnderlineSingle
Else
Selection.Font.Underline = wdUnderlineNone
End If
Selection.TypeText Text:=vbTab & vbTab & "P.O. No: "
If Selection.Font.Underline = wdUnderlineNone Then
Selection.Font.Underline = wdUnderlineSingle
Else
Selection.Font.Underline = wdUnderlineNone
End If
Selection.TypeText Text:="E6748-M0001"
If Selection.Font.Underline = wdUnderlineNone Then
Selection.Font.Underline = wdUnderlineSingle
Else
Selection.Font.Underline = wdUnderlineNone
End If
Selection.TypeParagraph
Selection.TypeParagraph
Selection.TypeText Text:="Item No: "
If Selection.Font.Underline = wdUnderlineNone Then
Selection.Font.Underline = wdUnderlineSingle
Else
Selection.Font.Underline = wdUnderlineNone
End If
Selection.TypeText Text:="26112/26113"
If Selection.Font.Underline = wdUnderlineNone Then
Selection.Font.Underline = wdUnderlineSingle
Else
Selection.Font.Underline = wdUnderlineNone
End If
Selection.TypeText Text:=vbTab & vbTab & "Rev No: "
If Selection.Font.Underline = wdUnderlineNone Then
Selection.Font.Underline = wdUnderlineSingle
Else
Selection.Font.Underline = wdUnderlineNone
End If
Selection.TypeText Text:="001"
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub 

Answer:

This code is a translation of your VB code to edit the headers in Word.
docfile = "c:\temp\temp.doc"
objWord = objectopen("Word.Application")
objWord.visible = @true
objDocs = objWord.Documents
objDocs.Open(docfile)

;Constants
wdPaneNone = 0
wdNormalView = 1
wdOutlineView = 2
wdMasterView = 5
wdPageView = 3 ;???
wdSeekCurrentPageHeader = 9
wdUnderlineNone = 0
wdUnderlineSingle = 1
wdSeekMainDocument = 0

;If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
;ActiveWindow.Panes(2).Close
;End If
objActWin = objWord.ActiveWindow
objView =  objActWin.View
if objView.SplitSpecial <> wdPaneNone
	objPanes = objActWin.Panes(2)
	objPanes.Close
	ObjectClose(objPanes)
endif

;If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
;ActivePane.View.Type = wdOutlineView Or ActiveWindow.ActivePane.View.Type _
;= wdMasterView Then
;ActiveWindow.ActivePane.View.Type = wdPageView
;End If
objActPane = objActWin.ActivePane 
objPaneView =  objActPane.View
if objPaneView.Type == wdNormalView || objPaneView.Type == wdOutlineView || objPaneView.Type == wdMasterView
	objPaneView.Type = wdPageView
endif 

;ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
;Selection.TypeText Text:="Job No: "
objPaneView.SeekView = wdSeekCurrentPageHeader
objSelection = objWord.Selection
objSelection.TypeText(:: Text="Job No: ")

;If Selection.Font.Underline = wdUnderlineNone Then
;Selection.Font.Underline = wdUnderlineSingle
;Else
;Selection.Font.Underline = wdUnderlineNone
;End If
objFont = objSelection.Font
if objFont.Underline == wdUnderlineNone
	objFont.Underline = wdUnderlineSingle
else
	objFont.Underline = wdUnderlineNone
endif

;Selection.TypeText Text:="831E-202A/B "
objSelection.TypeText(:: Text="831E-202A/B ")

;If Selection.Font.Underline = wdUnderlineNone Then
;Selection.Font.Underline = wdUnderlineSingle
;Else
;Selection.Font.Underline = wdUnderlineNone
;End If
if objFont.Underline == wdUnderlineNone
	objFont.Underline = wdUnderlineSingle
else
	objFont.Underline = wdUnderlineNone
endif

;Selection.TypeText Text:=vbTab & vbTab & "P.O. No: "
data = StrCat(@tab, @tab,"P.O. No: ")
objSelection.TypeText(:: Text=data)

;If Selection.Font.Underline = wdUnderlineNone Then
;Selection.Font.Underline = wdUnderlineSingle
;Else
;Selection.Font.Underline = wdUnderlineNone
;End If
if objFont.Underline == wdUnderlineNone
	objFont.Underline = wdUnderlineSingle
else
	objFont.Underline = wdUnderlineNone
endif

;Selection.TypeText Text:="E6748-M0001"
objSelection.TypeText(:: Text="E6748-M0001")

;If Selection.Font.Underline = wdUnderlineNone Then
;Selection.Font.Underline = wdUnderlineSingle
;Else
;Selection.Font.Underline = wdUnderlineNone
;End If
if objFont.Underline == wdUnderlineNone
	objFont.Underline = wdUnderlineSingle
else
	objFont.Underline = wdUnderlineNone
endif

;Selection.TypeParagraph
;Selection.TypeParagraph
objSelection.TypeParagraph
objSelection.TypeParagraph

;Selection.TypeText Text:="Item No: "
objSelection.TypeText(:: Text="Item No: ")

;If Selection.Font.Underline = wdUnderlineNone Then
;Selection.Font.Underline = wdUnderlineSingle
;Else
;Selection.Font.Underline = wdUnderlineNone
;End If
if objFont.Underline == wdUnderlineNone
	objFont.Underline = wdUnderlineSingle
else
	objFont.Underline = wdUnderlineNone
endif

;Selection.TypeText Text:="26112/26113"
objSelection.TypeText(:: Text="26112/26113")

;If Selection.Font.Underline = wdUnderlineNone Then
;Selection.Font.Underline = wdUnderlineSingle
;Else
;Selection.Font.Underline = wdUnderlineNone
;End If
if objFont.Underline == wdUnderlineNone
	objFont.Underline = wdUnderlineSingle
else
	objFont.Underline = wdUnderlineNone
endif

;Selection.TypeText Text:=vbTab & vbTab & "Rev No: "
data = StrCat(@tab, @tab,"Rev No: ")
objSelection.TypeText(:: Text=data)

;If Selection.Font.Underline = wdUnderlineNone Then
;Selection.Font.Underline = wdUnderlineSingle
;Else
;Selection.Font.Underline = wdUnderlineNone
;End If
if objFont.Underline == wdUnderlineNone
	objFont.Underline = wdUnderlineSingle
else
	objFont.Underline = wdUnderlineNone
endif

;Selection.TypeText Text:="001"
objSelection.TypeText(:: Text="001")

;ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
objPaneView.SeekView = wdSeekMainDocument 

ObjectClose(objFont)
ObjectClose(objSelection)
ObjectClose(objPaneView)
ObjectClose(objActPane)
ObjectClose(objView)
ObjectClose(objActWin)
ObjectClose(objDocs)
ObjectClose(objWord)

Article ID:   W16141
File Created: 2004:03:30:15:42:58
Last Updated: 2004:03:30:15:42:58