internet2107
Goto Top

Word VBA - Powershell - Seitenzahlen - jede Seite

Man möchte gerne bestehende Worddokumente entsprechend ändern (mit POwershell), dass folgende Zusätze eingebaut werden.

Ich finde Unmengen an Material zu Excel VBA, was ich in der Vergangenheit auch schon mal gemacht habe, aber bei Word sieht es sehr mau aus.

Ich habe folgenden Code. Dieser öffnet im aktuellen Fall ein WordDoc, fügt in der Fußzeile eine Seitenzahl hinzu und schreibt aktuell NUR auf der ersten Seite die Bezeichnung des Docs.

Wunsch ist aber:

- Seitenzahlen im Footer (Seite x von y)
- Bezeichnung des Dokuments auf jeder Seite des Docs im Kopf

$objword = New-Object -ComObject word.application
set-variable -name wdAlignPageNumberCenter -value 1 -option constant
$objword.visible = $false

$doc = $objword.documents.Open($word_dat.FullName)
$objword.selection.pagesetup.topmargin = 30
$objword.selection.pagesetup.leftmargin = 20
$objword.selection.pagesetup.rightmargin = 10
$objword.selection.pagesetup.bottommargin = 30
$printout_pagesize = "A2"  
$selection = $objword.Selection
$selection.Font.Name = "Arial"  
$selection.Font.Size = "9"  
$selection.TypeText((Get-Date))
$selection.TypeParagraph()
$selection.TypeText($word_dat.FullName)
$selection.TypeParagraph()
$selection.PageSetup.PaperSize = [Microsoft.Office.Interop.Word.WdPaperSize]::$printout_pagesize
$selection.PageSetup.Orientation = "Querformat"  
$doc.Sections.Item(1).Footers.Item(1).PageNumbers.Add($wdAlignPageNumberCenter)

Vielen Dank.

Content-Key: 255834

Url: https://administrator.de/contentid/255834

Printed on: April 24, 2024 at 20:04 o'clock

Mitglied: 114757
114757 Nov 25, 2014 updated at 14:13:42 (UTC)
Goto Top
# Header setzen 
$doc.Sections.Item(1).Headers.Item(1).Range.Select()
$objWord.Selection.Paragraphs.Item(1).Alignment = 1  # center
$objWord.Selection.Font.Name = "Arial"  
$objWord.Selection.Font.Size = "9"  
$objWord.Selection.Text = $word_dat.FullName

# Footer setzen
$doc.Sections.Item(1).Footers.Item(1).Range.Select()
$objWord.Selection.Paragraphs.Item(1).Alignment = 1   #center
$objWord.Selection.Font.Name = "Arial"  
$objWord.Selection.Font.Size = "9"  
$objWord.Selection.TypeText("Seite ")  
$objWord.Selection.Fields.Add($objWord.Selection.Range,-1,"PAGE")  
$objWord.Selection.TypeText(" von ")  
$objWord.Selection.Fields.Add($objWord.Selection.Range,-1,"NUMPAGES")  
Zur Info: Wenn du nach VBA suchst, findest du mehr Info zu Word, welches du dann fast 1 zu 1 in Powershell umsetzen kannst.

Gruß jodel32
Member: internet2107
internet2107 Nov 25, 2014 at 15:07:57 (UTC)
Goto Top
Viele Grüße, jodel32.

DANKE!!. Hat sehr geholfen.