创建文档字体列表(Microsoft Word)
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 [创建文档字体列表]。