Finne Ubrukte Styles

December 30  by Eliza

Muligheten til å opprette og administrere stiler er en av de sterke funksjoner i Word. Stiler gjør at du raskt og enkelt søke konsekvent formatering hele dokumentet, og oppdater at formatering som behovene endrer seg.

Ordet gir ganske mange innebygde (forhåndsdefinerte) stiler, og du kan legge til mer i takt med behovet. På et eller annet tidspunkt kan det være lurt å finne ut hvilke stiler er ikke i bruk i et dokument. Denne listen kan deretter brukes til å bestemme hvilke stiler du enkelt kunne slette, rett og slett fordi de ikke lenger er nødvendig.

Det er ingen iboende måte å skape en ubrukt liste stil i Word. I stedet må du opprette en makro til å gjøre jobben for deg. Du tenker kanskje at det å skape en slik makro ville være en enkel oppgave med å se på hvilke stiler Word mener er i bruk, og deretter sammenligne dem til stiler som er definert. Problemet med denne tilnærmingen er at VBA er i bruk eiendom (som gjelder stil objekter) brukes til flere formål. Den offisielle definisjonen for den i bruk egenskapen er at det er sant hvis en av følgende to vilkår er oppfylt:

  • Stilen er en innebygd stil som er modifisert eller brukt i dokumentet.
  • Stilen er en brukerdefinert stil som har blitt opprettet i dokumentet.

Hva det betyr er at den i bruk eiendommen ikke indikerer om en stil er faktisk i bruk i dokumentet. Du kan gjøre noe til definisjonen av en stil uten å faktisk bruke det, og at stil ville bli flagget som "i bruk", selv om det ikke er noen tekst i dokumentet faktisk bruker stilen.

Men er det mulig å generere en liste over stiler ikke er i bruk ved hjelp av både den innebygde og i bruk egenskapene i en makro. Følgende VBA-makro bruker denne tilnærmingen:

Sub CreateStyleList ()
Dim docThis som dokument
Dim styItem Som stil
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 Som boolsk

'Jf aktive dokumentet
Satt docThis = ActiveDocument

«Samle alle stiler blir brukt
iStyIUCount = 0
iParCount = docThis.Paragraphs.Count
iParOut = 0
For J = 1 Til iParCount
sParStyle = docThis.Paragraphs (J) .Style
For K = 1 Til iStyIUCount
Hvis sParStyle = sInUse (K) Then Exit For
Neste K
Hvis K = iStyIUCount + 1 Da
iStyIUCount = K
sInUse (iStyIUCount) = sParStyle
End If
Neste J

iStyBICount = 0
iStyUDCount = 0
"Sjekk ut stiler som er" i bruk "
For Hver styItem I docThis.Styles
'Se om i de som blir brukt
bInUse = False
For J = 1 Til iStyIUCount
Hvis styItem.NameLocal = sInUse (J) Deretter bInUse = True
Neste J
"Legg til de som ikke er i bruk
Hvis ikke bInUse Deretter
Hvis styItem.BuiltIn Deretter
iStyBICount = iStyBICount + 1
sBuiltIn (iStyBICount) = styItem.NameLocal
Else
iStyUDCount = iStyUDCount + 1
sUserDef (iStyUDCount) = styItem.NameLocal
End If
End If
Neste styItem

«Nå opprette resultatdokumentet
Documents.Add

Selection.TypeText "Styles i bruk"
Selection.TypeParagraph
For J = 1 Til iStyIUCount
Selection.TypeText sInUse (J)
Selection.TypeParagraph
Neste J
Selection.TypeParagraph
Selection.TypeParagraph

Selection.TypeText "Innebygd Styles ikke er i bruk"
Selection.TypeParagraph
For J = 1 Til iStyIUCount
Selection.TypeText sBuiltIn (J)
Selection.TypeParagraph
Neste J
Selection.TypeParagraph
Selection.TypeParagraph

Selection.TypeText "Brukerdefinerte Styles ikke er i bruk"
Selection.TypeParagraph
For J = 1 Til iStyIUCount
Selection.TypeText sUserDef (J)
Selection.TypeParagraph
Neste J
Selection.TypeParagraph
Selection.TypeParagraph
End Sub

Makro først undersøker hvert avsnitt i dokumentet for å finne navnene på stilene faktisk blir brukt i dokumentet. Denne informasjonen blir lagret i sInUse array. Deretter makro starter jakt gjennom listen som Word mener er i bruk - dette er de stiler som tilhører den Styles samlingen. Hvis stilen er ikke i sInUse array, så det tilsettes enten til sBuiltIn array (for innebygde stiler) eller sUserDef array (for brukerdefinerte stiler). Når sammenligningene blir gjort, er et nytt dokument som er opprettet som viser resultatene.

WordTips er din kilde for kostnadseffektiv Microsoft Word trening. (Microsoft Word er den mest populære tekstbehandlingsprogrammet i verden.) Dette tipset (1488) gjelder for Microsoft Word 97, 2000, 2002, og 2003.