Private Sub FindFontsInRange(ByVal tr As TextRange, ByVal col As Collection)
\'##查找字体
Dim FontName As String
Dim trBefore As TextRange, trAfter As TextRange
If Not tr Is Nothing Then
FontName = tr.Font
If FontName = "" Then
\' There are more than one font in the range
\' Divide the range in two and look into each half separately
\' to see if any of them has the same font. Repeat recursively
Set trBefore = tr.Duplicate
trBefore.End = (trBefore.Start + trBefore.End) \ 2
Set trAfter = tr.Duplicate
trAfter.Start = trBefore.End
FindFontsInRange trBefore, col
FindFontsInRange trAfter, col
Else
AddFontToCollection FontName, col
End If
End If
End Sub