如何使用VBA遍历MS Word中的每个字母?

Beh*_*joo 4 ms-word word-vba

我大约有100个Word文档,其中包括外国名字的音译。这些文档的作者使用了一种称为e2的特殊字体,该字体具有大约十二个特殊音译字符(所有这些字符均以Microsoft Sans Serif字体提供)。

我想遍历文档的每个字母,每当.Font = "e2"我想遍历十二个字母(很容易猜出它们是什么)并将其替换为Microsoft Sans Serif等效语言时。但是我不知道如何通过字母循环。像在Excel电子表格中的单元格中循环一样吗?

Tod*_*ain 5

这将是执行此操作的一种方法,但是根据文档的大小,执行它可能需要很长时间。

Sub ChangeFonts()
Dim doc As Document
Set doc = ActiveDocument

For i = 1 To doc.Range.Characters.Count
    If doc.Range.Characters(i).Font.Name = "e2" Then
        doc.Range.Characters(i).Font.Name = "Microsoft Sans Serif"
    End If
Next

End Sub
Run Code Online (Sandbox Code Playgroud)