使用 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/