Imagen: monticello/Adobe Stock

Los estilos juegan un papel importante en el trabajo efectivo en Microsoft Word. Si trabaja con archivos o plantillas que contienen muchos estilos personalizados, apreciará una lista de ellos, pero no hay una función integrada de Word que muestre una lista de todos los estilos. En este tutorial de Word, le mostraré cómo crear un procedimiento de VBA que inserte el nombre de todos los estilos (personalizado, integrado o ambos) en el documento actual. Puede imprimir el documento con fines de documentación o referencia.

VER: Vea todo lo que Microsoft puede hacer por usted con este paquete de capacitación (Academia TechRepublic)

Uso el escritorio de Microsoft 365 en un sistema Windows de 64 bits, pero puede usar versiones anteriores. Para su comodidad, puede descargar los archivos de demostración .docm y .doc. Word para la web no admite procedimientos de VBA.

Índice

Lo que necesita saber sobre el procedimiento VBA en Word

El siguiente procedimiento de VBA, también conocido como macro, hace mucho. En primer lugar, el procedimiento solicita al usuario que elija entre una lista de estilos integrados, estilos personalizados o todos los estilos. Después de que el usuario responde, el procedimiento abre un nuevo documento y genera una lista de estilos apropiados. Finalmente, el procedimiento muestra el número de estilos generados. El procedimiento no guarda este documento de Word. Eso no parece mucho considerando la cantidad de líneas en el procedimiento.

Sub ListStyles()

'Generate a list of custom (1), built-in (2), or all Word styles (3)

'in the active document.

Dim doc As Document

Dim sty As Style

Dim inp As Integer

Dim i As Integer

i = 0

'Request input value from user.

On Error GoTo errHandler: 'Catches Cancel or X.

inp = InputBox("Please enter one of the following values 1, 2, or 3." _

& vbLf & vbLf & _

"1. Custom styles" & vbLf & _

"2. Built-in styles" & vbLf & _

"3. All styles", _

"Print a list of styles", 1)

'Check for invalid input value.

If inp >= 4 Or inp < 1 Then

MsgBox "Please enter a valid input value: 1, 2, or 3.", vbOKOnly, _

"Input Error"

Exit Sub

End If

On Error GoTo errHandler

Set doc = Documents.Add

'Cycle through styles in active document.

With doc

For Each sty In .Styles

If inp = 1 And sty.BuiltIn = False Then

.Range.InsertAfter sty.NameLocal & vbCr

i = i + 1

ElseIf inp = 2 And sty.BuiltIn = True Then

.Range.InsertAfter sty.NameLocal & vbCr

i = i + 1

ElseIf inp = 3 Then

.Range.InsertAfter sty.NameLocal & vbCr

i = i + 1

'No Else because earlier code catches any value other than 1, 2, or 3.

End If

Next sty

End With

MsgBox i & " styles found.", vbOKOnly

Set doc = Nothing

Exit Sub

errHandler:

If Err.Number = 13 Then Exit Sub

MsgBox Err.Number & " " & Err.Description

Set doc = Nothing

End Sub

Aproximadamente la mitad del código comprueba si hay errores de entrada. Después de declarar algunas variables, el código muestra un cuadro de entrada que solicita al usuario que ingrese uno de los tres valores:

  • Estilos personalizados
  • Estilos incorporados
  • Todos los modelos

La primera instrucción On Error detecta el error devuelto si el usuario hace clic en Cancelar o X. En este caso, el bloque errHandler sale del procedimiento:

If Err.Number = 13 Then Exit Sub

Al hacer clic en Cancelar o X, el código asume que el usuario finalmente no desea ejecutar el procedimiento, por lo que el código no muestra un cuadro de mensaje explicativo.

Si el usuario responde al cuadro de mensaje ingresando un valor, el procedimiento almacena ese valor de entrada en una variable entera denominada inp. Si inp es diferente a 1, 2 o 3, el código muestra un cuadro de mensaje que le pide al usuario que ingrese uno de los valores especificados (1, 2 o 3) y luego finaliza el procedimiento.

Cuando inp es 1, 2 o 3, un bloque For Each realiza más comprobaciones utilizando declaraciones If:

  • Si inp es 1, el usuario desea imprimir una lista de estilos personalizados. En la siguiente verificación, sty.BuiltIn = False es verdadero, sty es un estilo personalizado, por lo que la declaración agrega el nombre del estilo a la lista y agrega 1 al contador i.
  • Si inp es 2, el usuario desea imprimir una lista de estilos incorporados. Al verificar sty.BuiltIn = True es verdadero, sty es un estilo incorporado, por lo que la declaración agrega el estilo a la lista y agrega 1 al contador i.
  • Si inp es 3, el usuario quiere imprimir una lista de todos los estilos para que no haya verificación; el código agrega el estilo a la lista y agrega 1 al contador i.

For Each finaliza cuando el procedimiento ha pasado por todos los estilos del documento activo. Las últimas declaraciones muestran un mensaje con la cantidad de estilos enumerados, luego destruyen el objeto doc y salen del procedimiento Sub. El manejo de errores muestra el número y la descripción de cualquier error. La mayoría de los códigos capturan valores de entrada no válidos, razón por la cual hay tantos.

Ahora que ha visto el procedimiento, es hora de escribirlo en un documento de Word.

VER: Comandos de Windows, Linux y Mac que todos deberían conocer (PDF gratuito) (República Tecnológica)

Cómo ingresar al procedimiento VBA en Word

Probablemente querrás realizar este procedimiento en muchos documentos y no solo en el mismo. Si es así, considere crear un archivo de plantilla (.dotm). Otra alternativa es agregar el procedimiento al libro de trabajo Personal.xlsb, que otorga acceso al procedimiento desde cualquier archivo de libro de trabajo abierto. El archivo de demostración es un archivo compatible con macros, .docm, porque es el más fácil de usar para nuestros propósitos.

Si está utilizando una versión de cinta, asegúrese de guardar el libro de trabajo como un archivo habilitado para macros. Si está trabajando en la versión de menú, puede omitir este paso. Si está trabajando solo y no utiliza el archivo de demostración descargable, agregue un estilo personalizado a su archivo para ver cómo funcionan las tres opciones.

Para ingresar al procedimiento, presione Alt + F11 para abrir el Editor de Visual Basic. En el Explorador de proyectos de la izquierda, seleccione Este documento. Si tiene varios archivos de Word abiertos, asegúrese de seleccionar el correcto. Puede ingresar el código manualmente o importar el archivo .cls descargable. Además, el procedimiento se encuentra en el archivo .docm descargable. Si ingresa el código manualmente, no lo pegue desde esta página web. En su lugar, copie el código en un editor de texto y luego péguelo en ThisDocument. Esto eliminará cualquier carácter web fantasma que pueda estar causando errores.

Guarde el archivo y regrese al documento de Word. Está listo para ejecutar el procedimiento de VBA para ver cómo funciona.

Cómo ejecutar el procedimiento VBA en Word

Ahora viene la parte fácil: Ejecutar el procedimiento. Para hacer esto, haga clic en la pestaña Desarrollador y luego haga clic en Macro en el grupo Macros. En el cuadro de diálogo resultante, elija ListStyles (Figura A) y haga clic en Ejecutar.

Figura A

Ejecute el procedimiento ListStyles VBA en Word.
Ejecute el procedimiento ListStyles VBA en Microsoft Word

El cuadro de mensaje muestra por defecto la primera opción, 1. Estilos personalizados (Figura B). Haga clic en Aceptar sin cambiar este valor de entrada.

Figura B

En Word, elija 1. Estilos personalizados y haga clic en Aceptar.
En Microsoft Word, elija 1. Estilos personalizados y haga clic en Aceptar.

Como puedes ver en Figura C, el archivo de demostración tiene un estilo personalizado: MyCustomStyle. Asegúrese de guardar este archivo manualmente si desea conservarlo con fines de documentación.

Figura C

El procedimiento de VBA inserta el estilo personalizado en el documento actual y luego muestra la cantidad de estilos personalizados encontrados en el documento actual: 1.
El procedimiento de VBA inserta el estilo personalizado en el documento activo.

Vuelva a ejecutar el procedimiento y elija 2 para los estilos integrados. Figura D muestra más de 300 resultados. Si no ve ListStyles, es posible que esté en el nuevo documento que creó el procedimiento en la primera ejecución. Asegúrese de volver a su archivo habilitado para macros.

Figura D

En Microsoft Word, hay más de 300 estilos integrados.
En Microsoft Word, hay más de 300 estilos integrados.

Siga ejecutando el procedimiento de VBA para ver cómo funciona todo con otros valores de entrada: ingrese 3, haga clic en Cancelar, ingrese 0 y 4, etc.

No desea seguir todos estos pasos para ejecutar esta macro cada vez que la necesite. Recomiendo agregarlo a la barra de herramientas de acceso rápido o a un grupo personalizado. Si necesita ayuda, lea mi artículo de TechRepublic Cómo agregar macros de Office a la barra de herramientas de QAT para un acceso rápido.

Si no sabe cómo ingresar este procedimiento en Personal.xlsb para que esté disponible para todos los libros de trabajo, lea mi artículo de TechRepublic, Cómo crear un procedimiento de VBA que cierre todos los libros de trabajo abiertos en Excel, que incluye instrucciones para el uso de Personal .xlsb.

¿Quiere aprender más sobre VBA en Excel? Consulte estos recursos en TechRepublic Academy:

  • Paquete Microsoft VBA
  • El paquete completo de Microsoft Excel y VBA
  • Dominar las macros de Microsoft Excel y Excel VBA
  • El paquete de formación completo para la certificación de Excel, VBA y Data Science