Я пытаюсь использовать Powershell для удаления всех предложений, помеченных средством проверки грамматики Microsoft Word. Я довольно далеко изучил объектную модель Word в Office Word 2010. Я смог найти следующее грамматическое неправильное предложение в документе и смог удалить его. Моя единственная проблема сейчас состоит в том, чтобы пройтись по документу и удалить все предложения, помеченные средством проверки грамматики Microsoft Word. Вот что у меня есть.
cd c:\testruns\
$docPath = "" + $(Get-Location) + "\Grammar\document.docx"
$Word = New-Object -ComObject Word.Application
$Word.Visible = $True
$doc = $Word.documents.open($docPath)
$docSelection = $Word.selection
# Word Method Constants
$wdGoToSpellingError = 13
$wdGoToGrammaticalError = 14
$wdGoToFirst = 1
$wdGoToLast = -1
$wdGoToNext = 2
while (!$AnymoreGrammar) {
[void]$docSelection.GoTo($wdGoToGrammaticalError, $wdGoToNext).delete()
}
Конечно, переменная $ AnymoreGrammar - это просто псевдокод для логической переменной, которую я хочу найти. Мне нужен действительный логический тест в цикле while, который проверяет, нет ли в документе больше грамматических ошибок. Если я этого не сделаю, то $ wdGoToNext будет продолжать работать, даже если нет грамматических ошибок. Он удаляет букву первого предложения, если не может найти предложение, помеченное грамматической ошибкой. Любая помощь? Я использую это как ссылку.
(http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.wdgotoitem.aspx)