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

関連記事

  1. Office アドイン

    Office 用アプリはソースコードが丸見え!?

    サーバーサイドの処理はともかくとして、Officeドキュメントにアクセ…

  2. Office関連

    日経ソフトウエア 2014年 10月号 「VBAでExcelを業務アプリ化」

    購読している雑誌、日経ソフトウエア 2014年 10月号に「イベントプ…

  3. Office関連

    [リボン・カスタマイズ]グループの表示・非表示をトグルボタンで切り替える。

    数年前に書いた記事に下記コメントをいただきました。Excelに…

  4. Office関連

    Office 2019のインストール方法

    下記ニュースサイトにある通り、永続ライセンス版のOffice 2019…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP