Cómo usar VBA para modificar tablas en Microsoft Word

Cambiar numerosas tablas en un documento de Word una por una sería un proyecto tedioso. ¡En su lugar, use VBA!

 Icono de Microsoft Word en pantalla

Imagen: PixelMe / Shutterstock

Las tablas de Microsoft Word son una característica poderosa y algunos documentos tienen muchas. Cuando se trabaja con muchas tablas, no es raro que alguien entre al final y diga: “¿Puedes cambiar las tablas para que estén todas …?”

VER: 83 consejos de Excel que todo usuario debe dominar (TechRepublic)

Si tiene muchas tablas y alguien le pide muchos cambios de formato, puede entrar en pánico: pero no lo haga. Con la colección de tablas de VBA, puede recorrer todas las tablas de un documento y realizar los mismos cambios. En este artículo, le mostraré dos procedimientos simples de VBA que recorren la colección Tables. El primero convierte cada tabla en texto. El segundo, cambia el color del borde a azul.

Estoy usando Microsoft 365 en un sistema Windows 10 de 64 bits, pero puedes usar versiones anteriores. Los procedimientos de VBA no son compatibles con Word Online. Para su comodidad, puede descargar los archivos de demostración .docm, .doc y .cls .

Conversión a texto

Una tabla de Word es como cualquier otra tabla; muestra filas y columnas de datos relacionados. Crear y formatear uno es simple, pero es igual de fácil terminar con inconsistencias de una tabla a otra cuando hay muchas tablas en un documento complejo. Se necesita mucho más tiempo para dominar todas esas inconsistencias que para crearlas en primer lugar.

El procedimiento en el Listado A es un bucle For Each simple que recorre todas las tablas del documento actual. Para hacerlo, el código hace referencia a la colección Tables y la constante wdSeparateByTabs de la propiedad de la tabla Separator. Es extremadamente simple y solo hace esto: convierte todas las tablas en texto. Está convirtiendo todas las tablas; es importante tener en cuenta esto porque puede convertir una tabla que no desea convertir. Este procedimiento no le permitirá elegir.

Listado A

Sub ConvertTblsToText ()

'Convierte todas las tablas a texto.

Dim tbl As table

If ActiveDocument.tables.Count = 0 Then

MsgBox “No hay tablas en este documento”, vbOKOnly, “Error”

Salir de Sub

Finalizar si

Para cada tbl en ActiveDocument.tables

'wdSeparateByCommas, wdSeparateByDefaultListSeparator,

{Parad. } Tbl.ConvertToText Separator: = wdSeparateByTabs

Siguiente

End Sub

Al convertir una tabla en texto, debe tener en cuenta cuatro delimitadores:

  • wdSeparateByCommas
  • wdSeparateByDefaultListSeparator
  • wdSeparateByParagraphs
  • wdSeparateByTabs
  • {194590001} el código se agregará como un comentario de las constantes, por lo que

le resultará más fácil adaptar este código a su propio trabajo. Con la colección Tables, podría hacer mucho con las tablas; Elegí convertir porque requiere muy poco código. Sin embargo, dentro de ese ciclo, puede cambiar una sola propiedad para todas las tablas o reformatearlas por completo. El poder está en el bucle que le da acceso a la colección Tables. A partir de ahí, las posibilidades son numerosas.

VER: Office 365: Una guía para líderes tecnológicos y empresariales (PDF gratuito) (TechRepublic)

Para ingresar al procedimiento, presione Alt + F11 para abrir el Editor de Visual Basic. En el Explorador de proyectos a la izquierda, seleccione ThisDocument. Puede ingresar el código manualmente o importar el archivo .cls descargable. Además, el procedimiento se encuentra en los archivos .docm y .doc descargables. 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 el módulo ThisDocument. Al hacerlo, se eliminarán los caracteres web fantasma que de otro modo podrían causar errores.

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. Ahora, ejecutemos este procedimiento en el archivo de demostración que se muestra en la Figura A de la siguiente manera:

  1. Haga clic en la pestaña Desarrollador y luego elija Macros en el grupo Código.
  2. En el cuadro de diálogo resultante, elija ConvertTblsToText y haga clic en Ejecutar.

Figura A

 wordconverttable-a.jpg

Ejecute esta macro para convertir todas las tablas en texto.

Después de ejecutar este procedimiento, las tres tablas ahora son cadenas de texto sin formato, separadas por tabulaciones, como se muestra en la Figura B . Recuerde, si su delimitador no son caracteres de tabulación, asegúrese de actualizar esa propiedad en el código. Además, si el documento no tiene tablas, el código mostrará un cuadro de mensaje de información y luego se detendrá. Lo más probable es que desee agregar un mensaje más descriptivo a su cuadro de mensaje.

Figura B

 wordconverttable-b.jpg

Si desea continuar y está utilizando el archivo de demostración, presione Ctrl + Z tres veces para deshacer las conversiones de la tabla. O cierre el archivo sin guardarlo y vuelva a abrirlo. Estamos a punto de cambiar las propiedades de la tabla expandiendo un poco el procedimiento.

Cambiar un formato

Listado A recorre la colección Tables, pero puede hacer mucho más que convertir las tablas en texto. Puede aplicar un nuevo estilo de tabla, cambiar un color de borde, etc. Mantendremos este siguiente procedimiento Listado B tan simple como el primero cambiando solo una propiedad, el color del borde exterior.

Listado B

Sub ChangeTableBorderColor ()

'Cambiar el color del borde exterior a azul.

Dim tbl As table

If ActiveDocument.tables.Count = 0 Then

MsgBox “No hay tablas en este documento”, vbOKOnly, “Error”

Exit Sub

End If

For Each tbl In ActiveDocument.tables

tbl.Borders.OutsideColor = wdColorBlue

Siguiente

Siguiente

End Sub

Este procedimiento también recorre la colección Tables, deteniéndose en cada tabla del documento y cambiando el color del borde exterior a azul, como se muestra en la Figura C . Elegí esta propiedad porque hay muchas posibilidades (y constantes de color). Pero una vez que sepa cómo recorrer la colección de Tablas, es fácil realizar cambios elaborados automáticamente usando VBA.

Figura C

wordconverttable-c.jpg

Hay un poco de manejo de errores en ambos procedimientos, pero es posible que desee más. Además, es poco probable que desee seguir todos esos pasos cada vez que desee ejecutar el procedimiento. En su lugar, agregue la macro a la barra de herramientas de acceso rápido. Para hacerlo, lea Cómo agregar macros de Office a la barra de herramientas QAT para un acceso rápido .

Consulte también


Source link

Be part of our affiliated companies and receive a 20% discount.
www.onevirtualoffice.com
www.be1radio.com
www.rmcommunik.com
www.beonegroup.ca

Need Help?
Let our experienced staff help with virtual helpdesk. click for details.

Services:
– Laptop and Desktop Repair
– Virus and Malware Removal
– Computer Tune-up
– Remote Assistance
– Data Backup
– Data Recovery
– File Transfer and Sharing
– Hardware Diagnostics
– Antivirus Installation
– Software Installation
– Hardware Upgrades
– New System Setup
– Printer Troubleshooting
-Webmaster,hosting,Logo , Graphic design
-Social media Management
– Networking
– Install Windows Operating System (10, 8, 7, Vista and XP)

Business & Residential Toll Free: 1-800-432-1475 | Direct: (438)488-3296

About rasco

Be Happy the future is friendly.
Allrights Reserved 2007-2018 - Beone Magazine - powered by rasco