Erstellen einer Dokumentschriftliste (Microsoft Word)
Mit Word können Sie die Schriftarten verwenden, die auf dem von Ihnen verwendeten System installiert sind. Schriftarten werden in Windows installiert, sodass sie nicht nur für Word, sondern für alle auf Ihrem System installierten Programme verfügbar sind.
Wenn Sie ein Dokument auf Ihrem System erstellen, ist es leicht zu erkennen, welche Schriftarten verwendet werden. Die Liste der Schriftarten ist auf die auf dem System verfügbaren beschränkt. Wenn Sie jedoch ein Dokument von einer anderen Person erhalten, sind auf dem System der anderen Person möglicherweise andere Schriftarten installiert als Sie. Dies bedeutet, dass das Word-Dokument mit Schriftarten formatiert werden kann, die Sie noch nicht einmal auf Ihrem System haben.
Wenn Sie eine Liste der in einem Dokument verwendeten Schriftarten erstellen möchten (im Gegensatz zu einer Liste der auf einem System verfügbaren Schriftarten), haben Sie mehrere Möglichkeiten. Zunächst können Sie das Word-Dokument in einem Texteditor öffnen und sich in den Teilen des Dokuments umsehen, die Sie normalerweise in Word nicht sehen. Gegen Ende der Datei sollte eine Liste der im Dokument verwendeten Schriftarten angezeigt werden. Wenn Sie dies tun, sollten Sie jedoch sehr vorsichtig sein, um keine Änderungen am Word-Dokument vorzunehmen, während es in Ihrem Texteditor geöffnet ist. Dadurch kann das Dokument leicht in Word nicht mehr verwendet werden.
Eine wortbasierte Lösung besteht darin, einfach jedes Zeichen in einem Dokument zu durchsuchen und herauszufinden, welche Schriftart zum Formatieren des Zeichens verwendet wird. Ein zeichenweiser Ansatz ist erforderlich, da jedes Zeichen mit einer anderen Schriftart formatiert werden kann und Sie mit VBA nicht auf eine Schriftsammlung in Bezug auf das Dokument selbst zugreifen können. Es scheint, dass keine solche Sammlung beibehalten wird. Somit ist der sicherste (und langsamste)
Methode ist einfach durch jedes Zeichen zu gehen und Ihre eigene Liste zu erstellen. Das folgende VBA-Makro führt die Aufgabe aus:
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
Je länger Ihr Dokument ist, desto länger dauert es natürlich, bis das Makro fertig ist. (Ich habe das Makro für ein Dokument mit 1.100 Seiten ausgeführt und es dauerte ungefähr 46 Minuten. Bei einem Dokument mit 5 Seiten dauerte es weniger als eine Minute.) Wenn Sie fertig sind, erstellt das Makro ein neues Dokument, das eine sortierte Liste der verwendeten Schriftarten enthält.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.
(Microsoft Word ist die beliebteste Textverarbeitungssoftware der Welt.) Dieser Tipp (13313) gilt für Microsoft Word 2007, 2010 und 2013.
Eine Version dieses Tipps für die ältere Menüoberfläche von Word finden Sie hier: