1. Create a Word application object and make it visible
$objWord = New-Object -ComObject Word.Application
$objWord.Visible = $True
2. Open a new Word document
$objWord = New-Object -ComObject Word.Application
$objWord.Visible = $True
$objDoc = $objWord.Documents.Add()
3. Open a new Word document and write some text and move to new paragraph
$objWord = New-Object -ComObject Word.Application
$objWord.Visible = $True
$objDoc = $objWord.Documents.Add()
$objSelection = $objWord.Selection
$objSelection.TypeText("Start of document.")
$objSelection.TypeParagraph()
4. Set style to "Heading 1" and type some text, change style to "Heading 2" type some text and change style to "Normal" and type some text
$objWord = New-Object -ComObject Word.Application
$objWord.Visible = $True
$objDoc = $objWord.Documents.Add()
$objSelection = $objWord.Selection
$objSelection.Style='Heading 1'
$objSelection.TypeText("Heading 1")
$objSelection.TypeParagraph()
$objSelection.Style='Heading 2'
$objSelection.TypeText("Heading 2")
$objSelection.TypeParagraph()
$objSelection.Style='Normal'
$objSelection.TypeText("Normal text")
5. Open existing document, jump to the end of the document and clear all font and paragraph formatting before starting new text
$objWord = New-Object -ComObject Word.Application
$objWord.Visible = $True
$objDoc = $objWord.Documents.Open("c:\temp\mydocument.docx")
$objSelection = $objWord.Selection
$objSelection.EndKey(6,0)
$objSelection.TypeParagraph()
$objSelection.ClearFormatting()
6. Set Bold, Italic and Bold-Italic font with different colors.
$objWord = New-Object -ComObject Word.Application
$objWord.Visible = $True
$objDoc = $objWord.Documents.Open("c:\temp\mydocument.docx")
$objSelection = $objWord.Selection
$objSelection.EndKey(6,0)
$objSelection.TypeParagraph()
$objSelection.ClearFormatting()
$objSelection.Font.Bold = 1
$objSelection.Font.Color=32768 # Green
$objSelection.TypeText('This is Bold Green Font')
$objSelection.Font.Bold = 0
$objSelection.TypeParagraph()
$objSelection.Font.Italic = 1
$objSelection.Font.Color=16711680 # Blue
$objSelection.TypeText('This is Italic Blue Font')
$objSelection.Font.Italic = 0
$objSelection.TypeParagraph()
$objSelection.Font.Bold = 1
$objSelection.Font.Italic = 1
$objSelection.Font.Color=-16777216 # automatic
$objSelection.TypeText('This is Bold Italic')
$objSelection.Font.Bold = 0
$objSelection.Font.Italic = 0
$objSelection.TypeParagraph()
7. Open existing document, write some text and then save as new document
$objWord = New-Object -ComObject Word.Application
$objWord.Visible = $True
$objDoc = $objWord.Documents.Open("c:\temp\mydocument.docx")
$objSelection = $objWord.Selection
$objSelection.EndKey(6,0)
$objSelection.TypeParagraph()
$objSelection.ClearFormatting()
$objSelection.TypeText("Add some text")
$objSelection.TypeParagraph()
$FileSaveAs = 'c:\temp\mydocument-new.docx'
$wdFormatWordDefault = 16
$objDoc.SaveAs($FileSaveAs,$wdFormatWordDefault)
$objWord.ActiveDocument.Close()
$objWord.Quit()
8. Open an existing document, search for keyword "document" and replace all with "word document", then save as new document
#
# syntax is
# find_object.Execute
( _FindText_
, _MatchCase_
, _MatchWholeWord_
,
# _MatchWildcards_
, _MatchSoundsLike_
, _MatchAllWordForms_
,
# _Forward_
, _Wrap_
, _Format_
, _ReplaceWith_
,
# _Replace_
, _MatchKashida_
, _MatchDiacritics_
,
# _MatchAlefHamza_
, _MatchControl_
)
#
# Reference: https://docs.microsoft.com/en-us/office/vba/api/word.wdreplace
#
$objWord = New-Object -ComObject Word.Application
$objWord.Visible = $True
$objDoc = $objWord.Documents.Open("c:\temp\mydocument.docx")
$objSelection = $objWord.Selection
$FindText = "document"
$ReplaceWith = "word document"
$MatchCase = $False
$MatchWholeWord = $True
$MatchWildCards = $False
$MatchSoundsLike = $False
$MatchAllWordForms = $False
$Forward = $True
$wdFindContinue = 1
$Wrap = $wdFindContinue
$Format = $True
$wdReplaceNone = 0
$ReplaceAll = 2
$a = $objSelection.Find.Execute( $FindText,$MatchCase,$MatchWholeWord,
$MatchWildCards,$MatchSoundsLike,
$MatchAllWordForms,$Forward,$Wrap,
$Format,$ReplaceWith,$ReplaceAll)
$FileSaveAs = 'c:\temp\mydocument-new.docx'
$wdFormatWordDefault = 16
$objDoc.SaveAs([ref]$FileSaveAs,[ref]$wdFormatWordDefault)
$objWord.Quit()
9. Discover information about tables in the document
$objWord = New-Object -ComObject Word.Application
$objWord.Visible = $True
$objDoc = $objWord.Documents.Open("report-template.docx")
$objSelection = $objWord.Selection
# list methods and properties of Tables object
> $objDoc.Tables | Out-GridView
10. Jump to a Bookmark and then insert a text there.
$FilePath = "c:\temp\"
$FileName = "doc-with-bookmarks.docx"
$objWord = New-Object -ComObject Word.Application
$objWord.Visible = $True
$objDoc = $objWord.Documents.Open($FilePath + $FileName)
$objSelection = $objWord.Selection
$objDoc.Bookmarks.Item("Bookmark2").range.select()
$objSelection.TypeText("Inserted at Bookmark2")
11. How to insert an .XLSX document and .PDF document as a content (OLE object), displayed as icon at a bookmark location
$FilePath = "c:\temp\"
$FileName = "doc-with-bookmarks.docx"
$objWord = New-Object -ComObject Word.Application
$objWord.Visible = $True
$objDoc = $objWord.Documents.Open($FilePath + $FileName)
$objSelection = $objWord.Selection
#public Microsoft.Office.Interop.Word.InlineShape AddOLEObject
#( ref object ClassType, ref object FileName,
# ref object LinkToFile, ref object DisplayAsIcon,
# ref object IconFileName, ref object IconIndex,
# ref object IconLabel, ref object Range
#);
$ClassType = "Excel.Sheet" # obtain from assoc .xlsx
$FileName = "c:\temp\test.xlsx"
$LinkToFile = $False
$DisplayAsIcon = $True
$IconFileName = "c:\temp\excel-64px.ico"
$IconIndex = 0
$IconLabel = "System Availability Feb 2018"
$objDoc.Bookmarks.Item("Bookmark1").range.InlineShapes.AddOLEObject($ClassType,$FileName,$LinkToFile,$DisplayAsIcon,$IconFileName,$IconIndex,$IconLabel)
$ClassType = "AcroExch.Document.DC" #from registry HKCU\Software\Classes\.pdf
$FileName = "c:\temp\test.pdf"
$LinkToFile = $False
$DisplayAsIcon = $True
$IconFileName = "c:\temp\pdf-64px.ico"
$IconIndex = 0
$IconLabel = "Usage Stats Feb 2018"
$objDoc.Bookmarks.Item("Bookmark2").range.InlineShapes.AddOLEObject($ClassType,$FileName,$LinkToFile,$DisplayAsIcon,$IconFileName,$IconIndex,$IconLabel)
Before Insert
After Insert
12. How to open a word document and set the active window position and size
$FilePath = "c:\temp\"
$FileName = "doc-with-bookmarks.docx"
$objWord = New-Object -ComObject Word.Application
$objWord.Visible = $True
$objDoc = $objWord.Documents.Open($FilePath + $FileName)
$objDoc.ActiveWindow.Left = 500
$objDoc.ActiveWindow.Width =650
$objDoc.ActiveWindow.Top = 0
$objDoc.ActiveWindow.Height = 620
$objDoc.ActiveWindow | foreach {"Top = " + $_.Top;"Left = " + $_.Left;
"Width = " + $_.Width;"Height = " + $_.Height;}
Ourput
Top = 0
Left = 500
Width = 650
Height = 620
wdReplace Enumeration
wdReplaceAll
2
Replace all occurrences.
wdReplaceNone
0
Replace no occurrences.
wdReplaceOne
1
Replace the first occurrence encountered.
wdFindWrap enumeration
wdFindAsk
2
After searching the selection or range, Microsoft Word displays a message asking whether to search the remainder of the document.
wdFindContinue
1
The find operation continues if the beginning or end of the search range is reached.
wdFindStop
0
The find operation ends if the beginning or end of the search range is reached.
Paragraph Alignment Enumeration
wdAlignParagraphCenter
1
Center-aligned.
wdAlignParagraphDistribute
4
Paragraph characters are distributed to fill the entire width of the paragraph.
wdAlignParagraphJustify
3
Fully justified.
wdAlignParagraphJustifyHi
7
Justified with a high character compression ratio.
wdAlignParagraphJustifyLow
8
Justified with a low character compression ratio.
wdAlignParagraphJustifyMed
5
Justified with a medium character compression ratio.
wdAlignParagraphLeft
0
Left-aligned.
wdAlignParagraphRight
2
Right-aligned.
wdAlignParagraphThaiJustify
9
Justified according to Thai formatting layout.
Color enumeration
wdColorAqua
13421619
Aqua color.
wdColorAutomatic
-16777216
Automatic color. Default; usually black.
wdColorBlack
0
Black color.
wdColorBlue
16711680
Blue color.
wdColorBlueGray
10053222
Blue-gray color.
wdColorBrightGreen
65280
Bright green color.
wdColorBrown
13209
Brown color.
wdColorDarkBlue
8388608
Dark blue color.
wdColorDarkGreen
13056
Dark green color.
wdColorDarkRed
128
Dark red color.
wdColorDarkTeal
6697728
Dark teal color.
wdColorDarkYellow
32896
Dark yellow color.
wdColorGold
52479
Gold color.
wdColorGray05
15987699
Shade 05 of gray color.
wdColorGray10
15132390
Shade 10 of gray color.
wdColorGray125
14737632
Shade 125 of gray color.
wdColorGray15
14277081
Shade 15 of gray color.
wdColorGray20
13421772
Shade 20 of gray color.
wdColorGray25
12632256
Shade 25 of gray color.
wdColorGray30
11776947
Shade 30 of gray color.
wdColorGray35
10921638
Shade 35 of gray color.
wdColorGray375
10526880
Shade 375 of gray color.
wdColorGray40
10066329
Shade 40 of gray color.
wdColorGray45
9211020
Shade 45 of gray color.
wdColorGray50
8421504
Shade 50 of gray color.
wdColorGray55
7566195
Shade 55 of gray color.
wdColorGray60
6710886
Shade 60 of gray color.
wdColorGray625
6316128
Shade 625 of gray color.
wdColorGray65
5855577
Shade 65 of gray color.
wdColorGray70
5000268
Shade 70 of gray color.
wdColorGray75
4210752
Shade 75 of gray color.
wdColorGray80
3355443
Shade 80 of gray color.
wdColorGray85
2500134
Shade 85 of gray color.
wdColorGray875
2105376
Shade 875 of gray color.
wdColorGray90
1644825
Shade 90 of gray color.
wdColorGray95
789516
Shade 95 of gray color.
wdColorGreen
32768
Green color.
wdColorIndigo
10040115
Indigo color.
wdColorLavender
16751052
Lavender color.
wdColorLightBlue
16737843
Light blue color.
wdColorLightGreen
13434828
Light green color.
wdColorLightOrange
39423
Light orange color.
wdColorLightTurquoise
16777164
Light turquoise color.
wdColorLightYellow
10092543
Light yellow color.
wdColorLime
52377
Lime color.
wdColorOliveGreen
13107
Olive green color.
wdColorOrange
26367
Orange color.
wdColorPaleBlue
16764057
Pale blue color.
wdColorPink
16711935
Pink color.
wdColorPlum
6697881
Plum color.
wdColorRed
255
Red color.
wdColorRose
13408767
Rose color.
wdColorSeaGreen
6723891
Sea green color.
wdColorSkyBlue
16763904
Sky blue color.
wdColorTan
10079487
Tan color.
wdColorTeal
8421376
Teal color.
wdColorTurquoise
16776960
Turquoise color.
wdColorViolet
8388736
Violet color.
wdColorWhite
16777215
White color.
wdColorYellow
65535
Yellow color.
wdUnits enumeration (used by Selection.EndKey method)
wdCell
12
A cell.
wdCharacter
1
A character.
wdCharacterFormatting
13
Character formatting.
wdColumn
9
A column.
wdItem
16
The selected item.
wdLine
5
A line.
wdParagraph
4
A paragraph.
wdParagraphFormatting
14
Paragraph formatting.
wdRow
10
A row.
wdScreen
7
The screen dimensions.
wdSection
8
A section.
wdSentence
3
A sentence.
wdStory
6
A story.
wdTable
15
A table.
wdWindow
11
A window.
wdWord
2
A word.
wdExtend Enumeration
wdExtend
1
The end of the selection is extended to the end of the specified unit.
wdMove
0
The selection is collapsed to an insertion point and moved to the end of the specified unit. Default.
wdFormatDocument
0
Microsoft Office Word 97 - 2003 binary file format.
wdFormatDOSText
4
Microsoft DOS text format.
wdFormatDOSTextLineBreaks
5
Microsoft DOS text with line breaks preserved.
wdFormatEncodedText
7
Encoded text format.
wdFormatFilteredHTML
10
Filtered HTML format.
wdFormatFlatXML
19
Open XML file format saved as a single XML file.
wdFormatFlatXML
20
Open XML file format with macros enabled saved as a single XML file.
wdFormatFlatXMLTemplate
21
Open XML template format saved as a XML single file.
wdFormatFlatXMLTemplateMacroEnabled
22
Open XML template format with macros enabled saved as a single XML file.
wdFormatOpenDocumentText
23
OpenDocument Text format.
wdFormatHTML
8
Standard HTML format.
wdFormatRTF
6
Rich text format (RTF).
wdFormatStrictOpenXMLDocument
24
Strict Open XML document format.
wdFormatTemplate
1
Word template format.
wdFormatText
2
Microsoft Windows text format.
wdFormatTextLineBreaks
3
Windows text format with line breaks preserved.
wdFormatUnicodeText
7
Unicode text format.
wdFormatWebArchive
9
Web archive format.
wdFormatXML
11
Extensible Markup Language (XML) format.
wdFormatDocument97
0
Microsoft Word 97 document format.
wdFormatDocumentDefault
16
Word default document file format. For Word, this is the DOCX format.
wdFormatPDF
17
PDF format.
wdFormatTemplate97
1
Word 97 template format.
wdFormatXMLDocument
12
XML document format.
wdFormatXMLDocumentMacroEnabled
13
XML document format with macros enabled.
wdFormatXMLTemplate
14
XML template format.
wdFormatXMLTemplateMacroEnabled
15
XML template format with macros enabled.
wdFormatXPS
18
XPS format.
WdWindowState Enumeration (Word)
wdWindowStateMaximize
1
Maximized.
wdWindowStateMinimize
2
Minimized.
wdWindowStateNormal
0
Normal.
WdGoToDirection Enumeration (Word)
Specifies the position to which a selection or the insertion point is moved in relation to an object or to itself.
wdGoToAbsolute
1
An absolute position.
wdGoToFirst
1
The first instance of the specified object.
wdGoToLast
-1
The last instance of the specified object.
wdGoToNext
2
The next instance of the specified object.
wdGoToPrevious
3
The previous instance of the specified object.
wdGoToRelative
2
A position relative to the current position.
WdParagraphAlignment enumeration (Word)
Name
Value
Description
wdAlignParagraphCenter
1
Center-aligned.
wdAlignParagraphDistribute
4
Paragraph characters are distributed to fill the entire width of the paragraph.
wdAlignParagraphJustify
3
Fully justified.
wdAlignParagraphJustifyHi
7
Justified with a high character compression ratio.
wdAlignParagraphJustifyLow
8
Justified with a low character compression ratio.
wdAlignParagraphJustifyMed
5
Justified with a medium character compression ratio.
wdAlignParagraphLeft
0
Left-aligned.
wdAlignParagraphRight
2
Right-aligned.
wdAlignParagraphThaiJustify
9
Justified according to Thai formatting layout.
WdVerticalAlignment enumeration (Word)
wdAlignVerticalBottom
3
Bottom vertical alignment.
wdAlignVerticalCenter
1
Center vertical alignment.
wdAlignVerticalJustify
2
Justified vertical alignment.
wdAlignVerticalTop
0
Top vertical alignment.
WdPageFit enumeration (Word)
Name
Value
Description
wdPageFitBestFit
2
Best fit the page to the active window.
wdPageFitFullPage
1
View the full page.
wdPageFitNone
0
Do not adjust the view settings for the page.
wdPageFitTextFit
3
Best fit the text of the page to the active window.
WdGoToItem Enumeration
Specifies the type of item to move the insertion point or selection just prior to.
Name
Value
Description
wdGoToBookmark
-1
A bookmark.
wdGoToComment
6
A comment.
wdGoToEndnote
5
An endnote.
wdGoToEquation
10
An equation.
wdGoToField
7
A field.
wdGoToFootnote
4
A footnote.
wdGoToGrammaticalError
14
A grammatical error.
wdGoToGraphic
8
A graphic.
wdGoToHeading
11
A heading.
wdGoToLine
3
A line.
wdGoToObject
9
An object.
wdGoToPage
1
A page.
wdGoToPercent
12
A percent.
wdGoToProofreadingError
15
A proofreading error.
wdGoToSection
0
A section.
wdGoToSpellingError
13
A spelling error.
wdGoToTable
2
A table.
Please enable JavaScript to view the comments powered by Disqus.