重新检查拼写文档与VBA代码不同

时间:2010-08-02 15:40:21

标签: ms-word word-vba

我想在添加字典后重新检查文档中的拼写。问题是以下代码(主要来自宏录制器)

CustomDictionaries.Add FileName:="c:\test_dictionary.dic"

Application.ResetIgnoreAll
ActiveDocument.Range.SpellingChecked = False
ActiveDocument.Range.GrammarChecked = False

与Word 2007的 Word选项|校对|重新检查文档按钮的结果不同。该按钮会重新检查文档,您可以看到新添加的单词将被删除为拼写错误。该代码没有任何明显的影响。

我在俯瞰什么?

2 个答案:

答案 0 :(得分:1)

这是Word的工作方式。添加CustomDictionary不会立即触发它,只有几种方法可以触发它。其中一个是校对对话框(即您不必单击“重新检查文档”,只需单击“确定”即可重新检查)。另一个触发器是手动键入文本,然后是分隔符(如空格或段落)。另一个触发器是拼写检查对话框。不幸的是,我看不到任何真正好的选择。

但这是一个糟糕的选择,我没有尝试过。 (注意:SendKeys在Vista / 7上运行不正常,那里有一个replacement。添加自定义词典后,打开校对对话框,然后以编程方式单击“确定”。同样,我还没有尝试过,所以我不确定这是否会产生预期的结果。

答案 1 :(得分:1)

我必须为一个项目做同样的事情,这个解决方法让它成为我的事:

 'spellcheck the document
 ActiveDocument.Range.LanguageID = wdFrenchHaiti
 ActiveDocument.Range.LanguageID = wdEnglishUS

当您更改语言时,Word会重新检查拼写错误的范围。