La capacidad de crear y administrar estilos es una de las características sólidas de Word. Los estilos le permiten aplicar rápida y fácilmente un formato coherente en todo el documento y actualizar ese formato a medida que cambian sus necesidades.

Word proporciona bastantes estilos integrados (predefinidos), y puede agregar más según sus necesidades. En algún momento, es posible que desee determinar qué estilos no se utilizan en un documento. Esta lista podría usarse para determinar qué estilos podría eliminar fácilmente, simplemente porque ya no son necesarios.

No existe una forma intrínseca de crear una lista de estilos no utilizados en Word.

En su lugar, debe crear una macro para que haga el trabajo por usted. Podría pensar que crear una macro de este tipo sería una tarea sencilla de observar qué estilos cree Word que están en uso y luego compararlos con los estilos que están definidos. El problema con este enfoque es que la propiedad InUse de VBA (que se aplica a los objetos Style) se usa para varios propósitos. La definición oficial de la propiedad InUse es que es True si se cumple alguna de las dos condiciones siguientes:

  • El estilo es un estilo integrado que se ha modificado o aplicado en el documento.

  • El estilo es un estilo definido por el usuario que se ha creado en el documento.

Lo que eso significa es que la propiedad InUse no indica si un estilo está realmente en uso en el documento. Podría hacer algo en la definición de un estilo sin aplicarlo realmente, y ese estilo se marcaría como ‘en uso’ aunque no haya ningún texto en el documento que realmente use el estilo.

Sin embargo, es posible generar una lista de estilos que no están en uso usando las propiedades InBuilt e InUse en una macro. La siguiente macro de VBA utiliza este enfoque:

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

La macro examina primero todos los párrafos del documento para determinar los nombres de los estilos que se utilizan realmente en el documento. Esta información se almacena en la matriz sInUse. Luego, la macro comienza a revisar la lista que Word cree que están en uso; estos son los estilos que pertenecen a la colección de Estilos. Si el estilo no está en la matriz sInUse, entonces se agrega a la matriz sBuiltIn (para estilos integrados) o la matriz sUserDef (para estilos definidos por el usuario). Cuando se realizan las comparaciones, se crea un nuevo documento que enumera los resultados.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios WordTips), he preparado una página especial que incluye información útil.

link: / wordribbon-WordTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

WordTips es su fuente de formación rentable en Microsoft Word.

(Microsoft Word es el software de procesamiento de texto más popular del mundo). Este consejo (1488) se aplica a Microsoft Word 97, 2000, 2002 y 2003.