Microsoft Wordのスペル/文法チェッカーをプログラムで使用するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1646801

質問

スペル/文法チェッカーを使用して、中程度から多数のテキストスニペットを処理し、ラフの近似値と「品質」のランキングを取得したい。速度もあまり関係ないので、最も簡単な方法は、スニペットをMicrosoft Word(2007)に渡し、それらのスペルチェックと文法チェッカーを実行するスクリプトを書くことだと思います。

スクリプト(具体的にはPython)からこれを行う方法はありますか?プログラムによるWordの制御について学習するのに役立つリソースは何ですか?

そうでない場合は、オープンソース文法チェッカー(SO)から何かを試すことができると思います。

更新

クリスの回答に応じて、少なくともa)ファイル(スニペットを含む)を開く、b)スペルチェックと文法チェッカーを呼び出すWord内からVBAスクリプトを実行する、およびc )「スコア」の表示を返すスニペットのですか?

更新2

うまくいくと思われる回答を追加しましたが、他の提案があれば、この質問をしばらく公開します。

役に立ちましたか?

解決

掘り下げましたが、有用な解決策を見つけたと思います。 http://www.nabble.com/のアドバイスに従ってください。 Edit-a-Word-document-programmatically-td19974320.html win32com モジュール(SourceForgeリンクが機能しない場合、このスタックオーバーフローの回答 pip を使用してモジュールを取得できます)。これにより、WordのCOMオブジェクトにアクセスできます。次のコードはこれをうまく示しています。

import win32com.client, os

wdDoNotSaveChanges = 0
path = os.path.abspath('snippet.txt')

snippet = 'Jon Skeet lieks ponies.  I can haz reputashunz?  '
snippet += 'This is a correct sentence.'
file = open(path, 'w')
file.write(snippet)
file.close()

app = win32com.client.gencache.EnsureDispatch('Word.Application')
doc = app.Documents.Open(path)
print "Grammar: %d" % (doc.GrammaticalErrors.Count,)
print "Spelling: %d" % (doc.SpellingErrors.Count,)

app.Quit(wdDoNotSaveChanges)

生成する

Grammar: 2
Spelling: 3

Wordから手動でチェックを呼び出した場合の結果と一致します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top