Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

Text in Word-Dokument finden und ersetzen (in gezeichneten Formen)

$
0
0

Hallo zusammen,

folgender Code sollte eigentlich gesuchten Text in einem MS Word-Dokument finden und ersetzen:

$Document = "C:\test\hiersuchen.docx"
$FindText = "TextInEinerForm"
$ReplaceText = "HiermitErsetzen"

$ReplaceAll = 2
$FindContinue = 1
$MatchCase = $false
$MatchWholeWord = $True
$MatchWildcards = $false
$MatchSoundsLike = $false
$MatchAllWordForms = $false
$Forward = $True
$Wrap = $FindContinue
$Format = $false

$Word = New-Object -Comobject Word.Application
$Word.Visible = $True

$OpenDoc = $Word.Documents.Open($Document)
$Selection = $Word.Selection

$Selection.Find.Execute(
$FindText,
$MatchCase,
$MatchWholeWord,
$MatchWildcards,
$MatchSoundsLike,
$MatchAllWordForms,
$Forward,
$Wrap,
$Format,
$ReplaceText,
$ReplaceAll
) | Out-Null

if ($Selection.Find.Found) {
	Write-Host("The search text was found.")
} else {
	Write-Host("The search text was not found.")
}

#$OpenDoc.Close()
#$Word.Quit()

Das funktioniert, wenn der gesuchte Text normal in das Dokument getippt worden ist. Ich habe allerdings ein Docx, in dem jeglicher Text in "Text Feldern" steht, also gezeichneten Formen. Damit meine ich zum Beispiel Rechtecke, die über das "Einfügen"-Menü eingefügt, gefärbt etc. und schließlich mit Text versehen werden können.

In diesen Feldern/Formen sucht der obere Code nicht, folglich kann ich den Text in den Formen nicht mit PowerShell ersetzen. Ich habe schon versucht, die verschiedenen Suchattribute von false auf true und umgekehrt zu setzen, was aber nicht half. Welche Eigenschaft muss ich per PowerShell an Word übergeben, damit auch in Textfeldern gesucht wird?

Ich bin über jede Hilfe dankbar,

Scriptex



Viewing all articles
Browse latest Browse all 2314


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>