是否可以通过 VBA 访问 MS Word 必须执行其语法检查的语法信息?

Posted

技术标签:

【中文标题】是否可以通过 VBA 访问 MS Word 必须执行其语法检查的语法信息?【英文标题】:Is it possible to access via VBA the grammatical information that MS Word must have to perform its grammar checks? 【发布时间】:2022-01-24 05:34:48 【问题描述】:

我正在尝试利用 MS Word 中使用的 AI 来确定 doc 文件中每个单词的词性。也就是说,对于像这样的句子:“猫坐在上面。”,我会得到类似的东西:“[wdDeterminer] cat[wdNoun] sat[wdVerb] on[wdPreposition] it[wdPronoun]”。

我知道 Word 必须在内部执行此操作才能使其语法校对工具正常工作。我的问题是:脚本是否可以访问这些信息。

请注意,我不是试图通过 VBA 运行拼写检查(尽管这将是解决方案的一个微不足道的部分)。另外,我对同义词库模块不感兴趣。

VBA 之外还有其他解决方案,例如带有 NLTK 的 python Lemmatization,但我想知道是否有人知道纯 VBA 解决方案。到目前为止,我的调查表明没有,但我希望我忽略了一些东西。

【问题讨论】:

这不能通过 VBA 获得,原因很简单。 Word 对象模型的存在只是为了自动化 UI。因此,如果 UI 中不存在某些功能,那么它也不会出现在对象模型中。 @TimothyRylatt 这是有道理的。感谢您证实我的怀疑。 【参考方案1】:

Word 可扩展性模型没有为此提供任何东西。您可以使用的最好的是以下属性和方法:

Options.CheckGrammarWithSpelling 属性控制在您使用拼写命令(工具菜单)检查拼写时 Word 是否检查语法。 Options.CheckGrammarAsYouType 属性标记语法错误,但要在屏幕上看到它们,您必须将 ShowGrammaticalErrors 属性设置为 True。 Application.CheckGrammar 方法检查字符串是否存在语法错误。返回一个布尔值以指示字符串是否包含语法错误。如果字符串不包含错误则为真。 Application.CheckSpelling 方法检查字符串是否存在拼写错误。返回Boolean 以指示字符串是否包含拼写错误。 True 如果字符串没有拼写错误。

【讨论】:

我希望访问应用程序的文本语法模型,但似乎不可用。还是谢谢。

以上是关于是否可以通过 VBA 访问 MS Word 必须执行其语法检查的语法信息?的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 2013:通过 VBA 使用 MS Word 的语法检查

MS Word 中的 VBA 影响整个文档,而不仅仅是选择

MS Word,VBA,如何选择表格内单元格中的段落?

VBA 导入 MS Access 到 MS Word

通过 VBA excel 程序在 MS Word 标题中的边框线后添加页码和新行

VBA MS Word表创建