首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Word 2010的VSTO中重置忽略的拼写检查单词

在Word 2010的VSTO中重置忽略的拼写检查单词
EN

Stack Overflow用户
提问于 2011-04-12 09:38:45
回答 1查看 1.1K关注 0票数 1

在旧版本的Word中,您可以执行以下操作来重置用户选择忽略的单词:

代码语言:javascript
运行
复制
Application.ResetIgnoreAll();
ActiveDocument.SpellingChecked = false;
ActiveDocument.CheckSpelling();

我正尝试在Word 2010的VSTO中使用同样的功能,虽然它会重新检查“忽略一次”的单词,但不会重新检查“全部忽略”的单词。我尝试在进入“选项”->“校对”并单击“重新检查文档”时录制宏,虽然这确实正确地重置了“全部忽略”列表,但它生成的宏与上面的代码相同。

有没有人知道这是Word 2010/VSTO中的一个bug,或者是否有不同的方法来重置“全部忽略”列表?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-16 23:56:36

这是一个错误,但在VBA中有一个解决方法,您可以针对VSTO进行调整。正如您正确识别的那样,ActiveDocument.SpellingChecked在Word对象模型中已损坏,但在Backstage视图中的选项|校对Recheck Document按钮下可以正常工作。尽管宏录制器不会显示执行此操作的命令,但用户可以使用Word内置宏和SendKeys的组合导航到“手动”按钮以执行命令:

代码语言:javascript
运行
复制
Application.Run MacroName:="FileNewDialog" 'Access Backstage view
SendKeys "%TP" 'Options|Proofing
SendKeys "%K" 'Recheck Document button
SendKeys "%Y" 'Yes button for confirmation message box
SendKeys "{ENTER}", True 'Exit the dialog box
SendKeys "{F7}" 'Perform spell check

由于SendKeys将Word置于一种手动模式,因此程序在退出后台视图时通常会忽略编程命令。这就是为什么上面的代码使用F7键击而不是ActiveDocument.CheckSpelling来执行拼写检查。

关于测试SendKeys 的重要说明:SendKeys不能通过单步执行VBA IDE中的代码来测试,因为它在运行时发出的击键会在执行时发送到活动窗口(即VBA开发窗口)。要测试SendKeys,请保存宏并将其附加到QAT按钮,该按钮可以根据需要按下以进行测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5629485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档