Office関連

GetSpellingSuggestionsメソッドで文法上の誤りの修正候補は取得できない?

前回前々回の記事でスペルチェック、文章校正に関するWordマクロを扱いました。
元々はMsdn フォーラムにあった質問「WordやOutlookで使用できる「スペルチェックと文章校正」の文法チェック結果をVBAから取得する方法はありますか」が切っ掛けで、その質問は“日本語文字列の文章校正結果を取得したいけどGetSpellingSuggestionsメソッドではエラーになる”というようなものでした。

試しに簡単な単語でテストしたところ、たしかにGetSpellingSuggestionsメソッドを実行した時点で[実行時エラー ‘4625’:辞書を開くことができません。]が発生し、修正候補を取得することができませんでした。
(辞書の指定を色々試してみましたが、どれも同様のエラーが発生しました。)

Public Sub Sample()
  Dim dic As Word.Dictionary
  
  With Selection.Range '文字列「人事移動」を選択
    '※ 下記すべて[実行時エラー '4625':辞書を開くことができません。]
    
    Debug.Print .GetSpellingSuggestions.Count
    'Debug.Print .GetSpellingSuggestions(MainDictionary:="Nihongo").Count
    'Debug.Print .GetSpellingSuggestions(MainDictionary:="日本語").Count
    'Debug.Print .GetSpellingSuggestions(MainDictionary:="Japanese").Count
    'Debug.Print .GetSpellingSuggestions(MainDictionary:=wdJapanese).Count
    'Debug.Print .GetSpellingSuggestions(CustomDictionary:="Nihongo").Count
    'Debug.Print .GetSpellingSuggestions(CustomDictionary:="日本語").Count
    'Debug.Print .GetSpellingSuggestions(CustomDictionary:="Japanese").Count
    'Debug.Print .GetSpellingSuggestions(CustomDictionary:=wdJapanese).Count
    'Set dic = Application.Languages(.LanguageID).ActiveGrammarDictionary
    'Debug.Print .GetSpellingSuggestions(MainDictionary:=dic).Count
    'Debug.Print .GetSpellingSuggestions(CustomDictionary:=dic).Count
    'Debug.Print .GetSpellingSuggestions(MainDictionary:=dic.Path & Application.PathSeparator & dic.Name).Count
    'Debug.Print .GetSpellingSuggestions(CustomDictionary:=dic.Path & Application.PathSeparator & dic.Name).Count
  End With
End Sub

ここで気になるのは「GetSpellingSuggestions」メソッドであるということ。

Wordの開発者用リファレンスには“指定範囲内の最初の単語の修正候補を表す SpellingSuggestions コレクションを返します。”とありますが、DocumentオブジェクトにSpellingErrorsプロパティ(指定した文書または範囲内にある、スペル ミスとして識別される単語を表す ProofreadingErrors コレクションを取得します。)とGrammaticalErrorsプロパティ(指定された文書で文法上の誤りが見つかった文を表す ProofreadingErrors コレクションを取得します。)、CheckSpellingメソッド(指定された文書または範囲のスペル チェックを行います。)とCheckGrammarメソッド(指定された文書または範囲の文章校正を行います。)が用意されていることを考えると、本来であれば文法上の誤りの修正候補を取得するには「GetGrammaticalSuggestions」なんてメソッドを使う必要があったのではないかと推測します。

といっても、GetGrammaticalSuggestionsメソッドなんてものは用意されていないので、それ以外の何らかの方法を用いる必要があったため、前回の記事では苦肉の策として、CommandBars(“Grammar”)にあるコントロールの中からIDが「0」のものを抜き出す方法を使ったのでした。

何故GetGrammaticalSuggestionsメソッドが無いのか?こういった細かいところが微妙に中途半端だなー、と感じるのですが、無いものは無いのでしょうがないですね・・・。

■ 関連Webページ

・英語のスペルミスを列挙して修正候補をコメントとして追加するWordマクロ
//www.ka-net.org/blog/?p=4508
・日本語の文法上の誤りを列挙して修正候補をコメントとして追加するWordマクロ
//www.ka-net.org/blog/?p=4510
・Range.GetSpellingSuggestions メソッド (Word)(機械翻訳)
http://msdn.microsoft.com/ja-jp/library/ff196525.aspx
・GetSpellingSuggestions メソッドでは、 Word での英語以外の言語提案の一覧が表示されません。
http://support.microsoft.com/kb/292108/ja
・テキストが正しくフラグ付きプログラムを使用して、スペルをチェックして、言語の辞書を指定するとスペル ミスとして
http://support.microsoft.com/kb/832124/ja
・Word で文章校正の対象についてのよく寄せられる質問
http://support.microsoft.com/kb/290943/ja
・GetGrammaticalSuggestions?
http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/019f262a-9936-461f-ac2a-c9eb3c4ad738

日本語の文法上の誤りを列挙して修正候補をコメントとして追加するWordマクロ前のページ

受信メールに対して自動的に返信するOutlookマクロ次のページ

関連記事

  1. Office関連

    アラビア文字かどうかを判別するWordマクロ

    以前mougの質問用に書いたコードが出てきたので、一部修正しました。…

  2. アイコン一覧

    Office 2013 アイコン一覧(W)

    ・Office 2013 アイコン一覧 NUM…

  3. Office関連

    PowerPoint 2013でYouTubeの動画を挿入する。

    2014/5/23 追記:いつの間にか「ビデオの挿入ダイアログ」が…

  4. Office関連

    [PowerPoint]テーブルを「変形」して値の変化を強調

    前回の記事と同じく、Insider版のバージョン 1903 (ビルド …

  5. Office関連

    各ページの各行の行頭と行末に文字列を挿入するWordマクロ

    Word文書の各ページに10行程度の文章があり、各行の行頭と行末に文字…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

PAGE TOP