是否可以通过 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 的语法检查