Word允许您使用正在使用的系统上安装的字体。字体安装在Windows中,因此它们不仅可用于Word,而且可用于系统上安装的所有程序。

在系统上创建文档时,很容易知道正在使用什么字体-字体列表仅限于系统上可用的字体。但是,如果您从另一个人那里收到文档,则另一个人的系统可能安装了与您不同的字体。这意味着他们的Word文档可以使用您系统上没有的字体进行格式化。

如果要生成文档中使用的字体列表(而不是系统上可用的字体列表),则有两种选择。首先,您可以在文本编辑器中打开Word文档,并浏览在Word中通常看不到的文档部分。在文件末尾附近,您应该看到文档中使用的字体列表。但是,如果这样做,则应非常小心,不要在文本编辑器中打开Word文档时对其进行任何更改。这样做很容易使文档不再在Word中可用。

基于Word的解决方案是简单地浏览文档中的每个字符,并检查用于格式化字符的字体。必须使用逐个字符的方法,因为每个字符都可以使用不同的字体设置格式,并且VBA不允许您访问与文档本身相关的字体集合-似乎没有这样的集合。因此,最安全(也是最慢)

方法是简单地浏览每个字符并创建自己的列表。以下VBA宏可以完成任务:

Public Sub ListFontsInDoc()

Dim FontList(199) As String     Dim FontCount As Integer     Dim FontName As String     Dim J As Integer, K As Integer, L As Integer     Dim X As Long, Y As Long     Dim FoundFont As Boolean     Dim rngChar As Range     Dim strFontList As String

FontCount = 0     X = ActiveDocument.Characters.Count     Y = 0     ' For-Next loop through every character     For Each rngChar In ActiveDocument.Characters         Y = Y + 1         FontName = rngChar.Font.Name         StatusBar = Y & ":" & X         ' check if font used for this char already in list         FoundFont = False         For J = 1 To FontCount            If FontList(J) = FontName Then FoundFont = True         Next J         If Not FoundFont Then             FontCount = FontCount + 1             FontList(FontCount) = FontName         End If     Next rngChar

' sort the list     StatusBar = "Sorting Font List"

For J = 1 To FontCount - 1         L = J         For K = J + 1 To FontCount             If FontList(L) > FontList(K) Then L = K         Next K         If J <> L Then             FontName = FontList(J)

FontList(J) = FontList(L)

FontList(L) = FontName         End If     Next J

StatusBar = ""

' put in new document     Documents.Add     Selection.TypeText Text:="There are " & _       FontCount & " fonts used in the document, as follows:"

Selection.TypeParagraph     Selection.TypeParagraph     For J = 1 To FontCount         Selection.TypeText Text:=FontList(J)

Selection.TypeParagraph     Next J End Sub

显然,文档越长,完成宏所花费的时间越长。 (我在1100页的文档上运行了宏,大约花费了46分钟。在5页的文档上,花费了不到一分钟。)完成后,宏创建了一个新文档,其中包含了所用字体的排序列表。

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(13313)适用于Microsoft Word 2007、2010和2013。您可以在此处找到适用于Word的较早菜单界面的本技巧的版本:

链接:/ word-Creating_a_Document_Font_List [创建文档字体列表]。