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 アドイン

    [Office用アプリ]Mashup Awards 9にOffice 用アプリで応募できる!?

    日本最大級のWebアプリケーション開発コンテスト「Mashup Awa…

  2. Office アドイン

    [Office用アプリ]Google ドライブでアプリを公開する方法

    今回は先日登壇した第一回 Apps for Office 勉強会の中で…

  3. Office関連

    UIAutomationClient参照時にDLL読み込みエラーが発生した時の対処法

    マクロでダイアログやボタンの操作を行う時に便利なUI Automati…

  4. Office関連

    [Office 365 Solo]日本語環境以外では使えるの?

    Office 365 Soloを使ってみて、疑問に思ったことの一つが“…

  5. アイコン一覧

    Office 365アイコン(imageMso)一覧(P)

    Office 365のデスクトップ版Officeアプリケーション(Wo…

  6. Office関連

    オデッセイ コミュニケーションズ主催のExcel VBA入門セミナーに参加しました。

    今月19日に開催されたオデッセイ コミュニケーションズさん主催の「Ex…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

Translate

Chinese (Simplified)Chinese (Traditional)EnglishFrenchGermanJapaneseKoreanRussianSpanish

最近の記事

アーカイブ

PAGE TOP