2

我正在尝试使用 VSTO 加载项在当前活动的 Word 文档中禁用拼写检查。我想避免在文档的 Open XML 标记中保存拼写错误。

我试图使用该Range.NoProofing属性。

currentDocument.Content.NoProofing = 1;

MSDN 文档指出这应该设置为true,但是,该属性的类型是int。我尝试将其设置为1,但它不起作用(拼写检查错误仍然出现在文档中)。在调试器中,我看到该属性仍设置为0赋值后。

如何正确使用该Range.NoProofing属性或是否有任何其他方法可以禁用 Word 文档中的拼写检查?

4

1 回答 1

2

DocumentBeforeSave在使用事件保存文档之前,我最终忽略了所有拼写错误。

this.application.DocumentBeforeSave += this.OnDocumentBeforeSave;

当用于包含拼写错误的范围时,该NoProofing属性似乎可以正常工作。

private void OnDocumentBeforeSave(Document doc, ref bool saveAsUi, ref bool cancel)
{
    // Ignore all spelling errors in the document
    foreach (Range error in this.application.ActiveDocument.SpellingErrors)
    {
        error.NoProofing = 1;
    }

    // Ignore all spelling errors in content controls
    foreach (ContentControl control in this.application.ActiveDocument.ContentControls)
    {
        control.Range.NoProofing = 1;
    }
}
于 2013-11-08T13:57:07.723 回答