Jump to content

Change amount of Word Templates insert Title / headings


Recommended Posts

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:

  1. Add a page break at the end of the document (works)
  2. Add a text on the created Page (works)
  3. Change the headerstyle to blank for the new page and the following (missing)
  4. 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

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...