Microsoft Wordのスペル/文法チェッカーをプログラムで使用するにはどうすればよいですか?
質問
スペル/文法チェッカーを使用して、中程度から多数のテキストスニペットを処理し、ラフの近似値と「品質」のランキングを取得したい。速度もあまり関係ないので、最も簡単な方法は、スニペットをMicrosoft Word(2007)に渡し、それらのスペルチェックと文法チェッカーを実行するスクリプトを書くことだと思います。
スクリプト(具体的にはPython)からこれを行う方法はありますか?プログラムによるWordの制御について学習するのに役立つリソースは何ですか?
そうでない場合は、オープンソース文法チェッカー(SO)から何かを試すことができると思います。
更新
クリスの回答に応じて、少なくともa)ファイル(スニペットを含む)を開く、b)スペルチェックと文法チェッカーを呼び出すWord内からVBAスクリプトを実行する、およびc )「スコア」の表示を返すスニペットのですか?
更新2
うまくいくと思われる回答を追加しましたが、他の提案があれば、この質問をしばらく公開します。
解決
掘り下げましたが、有用な解決策を見つけたと思います。 http://www.nabble.com/のアドバイスに従ってください。 Edit-a-Word-document-programmatically-td19974320.html win32com を使用していますa>モジュール(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から手動でチェックを呼び出した場合の結果と一致します。
所属していません StackOverflow