By
Benandro
Hello,
im working on a Script that should change a high amount of Word Templates at once.
Target is to open each Templatefile (.dotx) in a specific folder and do the following steps:
Add a page break at the end of the document (works)
Add a text on the created Page (works)
Change the headerstyle to blank for the new page and the following (missing)
Add a heading between two specific headings (missing)
Can please someone help me to add the 2 functions to the script?
#include <word.au3>
#include <File.au3>
#include <array.au3>
; wdGoToDirection
Const $wdGoToNext = 2
; wdGoToItem
Const $wdGoToPage = 1
; Created a logfile for tracking/error reporting on my local desktop, though anywhere would work. Needs to be changed or it will error.
Global $LogFile = FileOpen("c:\logfiles\test.log", 1)
; This is the network path, change it or this will error as it is.
ListFiles ("D:\Templates\")
Global $loopend=$aFileList[0]
; Creates an instance of Word for the program to use. Logs any errors associated.
Global $oWord = _Word_Create(False, False)
If @error <> 0 Then Exit _FileWriteLog($LogFile, "Error creating a new Word application object. @error = " & @error & ", @extended = " & @extended & @crlf)
If @extended = 1 Then
_FileWriteLog ($LogFile, "MS Word was not running when _Word_Create was called." & @CRLF)
Else
_FileWriteLog ($LogFile, "MS Word was already running when _Word_Create was called." & @CRLF)
EndIf
; Logs and begins loop
_FileWriteLog ($LogFile, "Beginning Loop." & @CRLF)
For $looper = 1 to $loopend Step +1
_FileWriteLog ($LogFile, "Modifying file: " & $aFileList[$looper], " ")
OpenAndModify ("D:\Templates\" & $aFileList[$looper])
Next
; Closes instance of Word
_Word_Quit ($oWord)
_FileWriteLog ($LogFile, "Program Completed.")
; Begins Function section
; Two functions, Listfiles and OpenAndModify
Func ListFiles($FolderPath)
; Function puts all files in the network folder into an array. Logs any errors.
_FileWriteLog ($LogFile, "Getting File Information for: " & $FolderPath & @crlf)
Global $aFileList = _FileListToArray($FolderPath, "*")
If @error = 1 Then
_FileWriteLog($LogFile, "Path was invalid." & @crlf)
EndIf
If @error = 4 Then
_FileWriteLog ($LogFile, "No file(s) were found." & @crlf)
EndIf
EndFunc
Func OpenAndModify ($sDocument)
; Function opens file and changes the Page Setup
; Opens the Document
Local $oDoc = _Word_DocOpen ($oWord, $sDocument, Default, Default, Default)
If @error <> 0 Then _FileWriteLog ($LogFile, "Error opening " & $sDocument & " @error = " & @error & ", @extended = " & @extended & @crlf) & Exit
; Changes Tray Settings
;$oDoc.PageSetup.FirstPageTray = 0
;$oDoc.PageSetup.OtherPagesTray = 0
; Add a link to the end of the document and set parameters
; ScreenTip and TextToDisplay
Local $oRange = _Word_DocRangeSet($oDoc, -2); Go to end of document
$oRange.InsertBreak($wdPageBreak)
;MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocRangeSet Example", "Inserted a break.")
$oRange.Text = "«Text»" ; Add a space at the end of the document
$oRange = _Word_DocRangeSet($oDoc, -2)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocLinkAdd Example", _
"Error adding a link to the document." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocLinkAdd Example", "Baustein wurde an das Ende des Dokuments eingefügt.")
; Saves the document
_Word_DocSave($oDoc)
_FileWriteLog ($LogFile, "Modification of" & $sDocument & " complete." & @CRLF)
EndFunc