Suchen nicht verwendeter Stile (Microsoft Word)
Die Fähigkeit, Stile zu erstellen und zu verwalten, ist eine der Hauptfunktionen von Word. Mit Stilen können Sie schnell und einfach konsistente Formatierungen in Ihrem Dokument anwenden und diese Formatierungen aktualisieren, wenn sich Ihre Anforderungen ändern.
Word bietet eine Reihe integrierter (vordefinierter) Stile, und Sie können je nach Bedarf weitere hinzufügen. Zu einem bestimmten Zeitpunkt möchten Sie möglicherweise feststellen, welche Stile in einem Dokument nicht verwendet werden. Diese Liste kann dann verwendet werden, um zu bestimmen, welche Stile Sie leicht löschen können, einfach weil sie nicht mehr benötigt werden.
Es gibt keine intrinsische Möglichkeit, eine nicht verwendete Stilliste in Word zu erstellen.
Stattdessen müssen Sie ein Makro erstellen, um die Aufgabe für Sie zu erledigen. Sie könnten denken, dass das Erstellen eines solchen Makros eine einfache Aufgabe wäre, zu prüfen, welche Stile von Word verwendet werden, und diese dann mit den definierten Stilen zu vergleichen. Das Problem bei diesem Ansatz besteht darin, dass die InUse-Eigenschaft von VBA (die für Style-Objekte gilt) für verschiedene Zwecke verwendet wird. Die offizielle Definition für die InUse-Eigenschaft lautet, dass es wahr ist, wenn eine der beiden folgenden Bedingungen erfüllt ist:
-
Der Stil ist ein integrierter Stil, der im Dokument geändert oder angewendet wurde.
-
Der Stil ist ein benutzerdefinierter Stil, der im Dokument erstellt wurde.
Dies bedeutet, dass die InUse-Eigenschaft nicht angibt, ob im Dokument tatsächlich ein Stil verwendet wird. Sie können etwas an der Definition eines Stils tun, ohne ihn tatsächlich anzuwenden, und dieser Stil wird als „in Verwendung“ gekennzeichnet, obwohl das Dokument keinen Text enthält, der den Stil tatsächlich verwendet.
Es ist jedoch möglich, eine Liste von Stilen zu erstellen, die nicht verwendet werden, indem sowohl die InBuilt- als auch die InUse-Eigenschaften in einem Makro verwendet werden. Das folgende VBA-Makro verwendet diesen Ansatz:
Sub CreateStyleList() Dim docThis As Document Dim styItem As Style Dim sBuiltIn(499) As String Dim iStyBICount As Integer Dim sUserDef(499) As String Dim iStyUDCount As Integer Dim sInUse(499) As String Dim iStyIUCount As Integer Dim iParCount As Integer Dim J As Integer, K As Integer Dim sParStyle As String Dim bInUse As Boolean ' Ref the active document Set docThis = ActiveDocument ' Collect all styles being used iStyIUCount = 0 iParCount = docThis.Paragraphs.Count iParOut = 0 For J = 1 To iParCount sParStyle = docThis.Paragraphs(J).Style For K = 1 To iStyIUCount If sParStyle = sInUse(K) Then Exit For Next K If K = iStyIUCount + 1 Then iStyIUCount = K sInUse(iStyIUCount) = sParStyle End If Next J iStyBICount = 0 iStyUDCount = 0 ' Check out styles that are "in use" For Each styItem In docThis.Styles 'see if in those being used bInUse = False For J = 1 To iStyIUCount If styItem.NameLocal = sInUse(J) Then bInUse = True Next J 'Add to those not in use If Not bInUse Then If styItem.BuiltIn Then iStyBICount = iStyBICount + 1 sBuiltIn(iStyBICount) = styItem.NameLocal Else iStyUDCount = iStyUDCount + 1 sUserDef(iStyUDCount) = styItem.NameLocal End If End If Next styItem 'Now create the output document Documents.Add Selection.TypeText "Styles In Use" Selection.TypeParagraph For J = 1 To iStyIUCount Selection.TypeText sInUse(J) Selection.TypeParagraph Next J Selection.TypeParagraph Selection.TypeParagraph Selection.TypeText "Built-in Styles Not In Use" Selection.TypeParagraph For J = 1 To iStyIUCount Selection.TypeText sBuiltIn(J) Selection.TypeParagraph Next J Selection.TypeParagraph Selection.TypeParagraph Selection.TypeText "User-defined Styles Not In Use" Selection.TypeParagraph For J = 1 To iStyIUCount Selection.TypeText sUserDef(J) Selection.TypeParagraph Next J Selection.TypeParagraph Selection.TypeParagraph End Sub
Das Makro untersucht zunächst jeden Absatz im Dokument, um die Namen der Stile zu ermitteln, die tatsächlich im Dokument verwendet werden. Diese Informationen werden im sInUse-Array gespeichert. Anschließend durchsucht das Makro die Liste, von der Word glaubt, dass sie verwendet wird. Dies sind die Stile, die zur Styles-Auflistung gehören. Wenn sich der Stil nicht im sInUse-Array befindet, wird er entweder dem sBuiltIn-Array (für integrierte Stile) oder dem sUserDef-Array (für benutzerdefinierte Stile) hinzugefügt. Nach Abschluss der Vergleiche wird ein neues Dokument erstellt, in dem die Ergebnisse aufgelistet sind.
_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 (1488) gilt für Microsoft Word 97, 2000, 2002 und 2003.