vba - 检测Word文档的语言

标签 vba ms-word

使用 Range.DetectLanguage ,如何检测 Word 的每个段落的语言?文档并确定 Word 文档最常用的语言?

我希望运行它的文档集可以是法语或英语,但所有文档的标题中都会同时包含英语和法语,所以我不能使用 Document.DetectLanguage因为这会返回 WdUndefined在所有文件上。我需要检查所有段落并确定文档中最受欢迎的语言是什么。

VBA 中执行此操作的最佳方法是什么? ?

最佳答案

Dim doc As Document, para As Paragraph
Dim lang As WdLanguageId
Dim dict As New Dictionary

Set doc = ActiveDocument
If Not doc.LanguagedDetected Then doc.DetectLanguage
' count languages in paragraphs
For Each para In doc.Paragaphs
   lang = para.Range.LanguageId
   If Not dict.Exists(lang) Then 
       dict.add lang, 1
   Else
       dict(lang) = dict(lang) + 1
   End if
Next
' determine most popular language
Dim maxCount As Integer, maxKey As wdLanguageId
For Each key In dict.Keys()
   If dict(key) > maxCount Then 
      maxCount = dict(key)
      maxKey = key
   End if
Next

Debug.Print "Most popular language is: " & maxKey

关于vba - 检测Word文档的语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35390848/

相关文章:

Excel 错误 1004 "Unable to get .... property of WorksheetFunction class"出现不一致

vba - 循环范围

r - 使用officeR包中的body_replace_img_at_bkm函数保持宽高比图像

Word 2016 中的正则表达式

java - 无法使用 Apache POI 获取/设置 Word 文档 (.doc) 中的复选框值

c# - 有没有办法用 OpenXML 库了解 MS word 分页?

excel - windows定时器VBA改变速度

vba - 为什么这不是类型不匹配?

VBA:检测用户窗体的任何文本框中的更改

c# - 如何替换 richtextbox 中插入符号位置下的单词? - 实现拼写检查建议