【问题标题】:Make Word's automatic spell-checking pick up dictionary changes使 Word 的自动拼写检查拾取字典更改
【发布时间】:2020-07-07 05:43:25
【问题描述】:

在 MS Word 中,可以将单词添加到自定义词典中以便识别它们。如果无法识别某个单词,Word 会自动在其下方放置一条红色波浪线。如果您将该词添加到自定义词典,该行将消失。我想做的是通过宏自动执行此过程。似乎必须手动打开字典文件并写入新单词,因为 Word Dictionary 对象上没有将单词添加到给定字典的方法。这没有问题,只是 Word 不会自动拾取新单词并删除新添加的单词下方的红色波浪线。我什至尝试清除自定义词典并将它们重新添加,但它似乎不会重新加载词典,直到您手动运行拼写检查。示例代码如下:

Dim x As Dictionary
Dim fname As String

fname = "C:\Users\me\AppData\Roaming\Microsoft\UProof\md.dic"

' code to add word to dictionary goes here

With CustomDictionaries
    .ClearAll
    .Add fname
    .ActiveCustomDictionary = CustomDictionaries.Item(fname)

End With

有没有办法让 Word 在不运行交互式拼写检查的情况下识别自定义词典中新添加的单词?如果您手动添加单词,它会默默地执行此操作,但我似乎无法在 VBA 中复制此行为。我希望红线自动消失,就像您手动添加单词时一样。

【问题讨论】:

标签: vba dictionary ms-word


【解决方案1】:

我还没有完全解决这个问题,但我想我想出了一个解决办法。您可以使用ActiveDocument.SpellingErrors 获取代表拼写错误的Range 对象集合。我将在此集合中搜索与我添加到字典中的单词匹配的文本,然后在对象上设置.NoProofing = True。这似乎使红线消失了,并且将新单词添加到字典中将阻止它们在我下次打开文档时再次出现。我还没有完全测试过这种方法,但它看起来很有希望。

编辑 这种方法是有缺陷的,因为在同一会话期间输入的单词的其他实例将在它们下面有红色的波浪线,因为它们没有被明确忽略并且拼写检查还没有使用更新的字典。如果您只是手动拉出自定义词典对话框并单击“确定”,则会在后台发生一些事情以重新阅读词典。我只是不知道如何在代码中做到这一点。

【讨论】:

    猜你喜欢
    • 2010-09-14
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    相关资源
    最近更新 更多