Cómo convertir tablas de Microsoft Word a texto y cambiar el color del borde en VBA
Cómo convertir tablas en Microsoft Word
Las tablas en Microsoft Word son una función poderosa, y algunos documentos tienen muchas de ellas. Cuando se trabaja con muchas tablas, es común que alguien llegue al final y diga: "¿Puedes cambiar las tablas para que sean todas...?"
Si tienes muchas tablas y alguien te pide muchos cambios de formato, puede que entres en pánico, pero no te preocupes. Usando la colección de Tablas en VBA, puedes recorrer todas las tablas en un documento y hacer los mismos cambios. En este artículo, te mostraré dos procedimientos sencillos en VBA que recorren la colección de Tablas. El primero convierte cada tabla a texto y el segundo cambia el color del borde a azul.
Estoy utilizando 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 tu comodidad, puedes descargar los archivos de demostración .docm, .doc y .cls.
Cómo convertir tablas a texto
Una tabla en Word es como cualquier otra tabla; muestra filas y columnas de datos relacionados. Crear y formatear una tabla es sencillo, pero también es fácil terminar con inconsistencias de una tabla a otra cuando hay muchas tablas en un documento complejo. Reordenar todas esas inconsistencias lleva mucho más tiempo del que se tarda en crearlas inicialmente.
Enseñanza y Aprendizaje con Microsoft: Herramientas y Lecciones para Profesores de todos los NivelesEl procedimiento en Listado A es un simple bucle For Each que recorre todas las tablas en el documento actual. Para hacerlo, el código hace referencia a la colección de Tablas y a la propiedad de tabla Separador, utilizando la constante wdSeparateByTabs. Es extremadamente sencillo y solo hace una cosa: convertir todas las tablas a texto. Estás convirtiendo todas las tablas, es importante tenerlo en cuenta porque podrías convertir una tabla que no deseas convertir. Este procedimiento no te permite seleccionar y elegir.
Listado A
Sub ConvertirTablasATexto()
'Convertir todas las tablas a texto.
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.ConvertToText Separator:=wdSeparateByTabs
Next
End Sub
Cuando conviertes una tabla a texto, tienes cuatro delimitadores para considerar:
- wdSeparateByCommas
- wdSeparateByDefaultListSeparator
- wdSeparateByParagraphs
- wdSeparateByTabs
He añadido estas constantes al código como un comentario, para que sea más fácil adaptarlo a tu propio trabajo. Utilizando la colección de Tablas, podrías hacer muchas cosas con las tablas; yo elegí convertirlas porque requiere muy poco código. Sin embargo, dentro de ese bucle, podrías cambiar una sola propiedad de todas las tablas o reformatearlas completamente. El poder está en el bucle que te da acceso a la colección de Tablas. A partir de ahí, las posibilidades son numerosas.
Para acceder al procedimiento, presiona Alt + F11 para abrir el Editor de Visual Basic. En el Explorador de Proyectos a la izquierda, selecciona ThisDocument. Puedes ingresar el código manualmente o importar el archivo .cls descargable. Además, el procedimiento se encuentra en los archivos descargables .docm y .doc. Si ingresas el código manualmente, no pegues desde esta página web. En su lugar, copia el código en un editor de texto y luego pégalo en el módulo ThisDocument. De esta manera, se eliminarán los caracteres web fantasma que podrían causar errores.
Si estás utilizando una versión con cinta de opciones, asegúrate de guardar el documento como un archivo habilitado para macros. Si estás trabajando en la versión de menú, puedes omitir este paso. Ahora, vamos a ejecutar este procedimiento en el archivo de demostración que se muestra en la Figura A de la siguiente manera:
Guía de Examen de Certificación Lotus Notes: Desarrollo de Aplicaciones y Administración del Sistema- Haz clic en la pestaña Desarrollador y luego elige Macros en el grupo Código.
- En el cuadro de diálogo resultante, elige ConvertirTablasATexto y haz clic en Ejecutar.
Figura A
Después de ejecutar este procedimiento, todas las tablas se convierten en cadenas de texto sin formato, separadas por pestañas, como se muestra en la Figura B. Recuerda, si tu delimitador no es un tabulador, asegúrate 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á. Probablemente querrás agregar un mensaje más descriptivo a tu cuadro de mensaje.
Figura B
Si deseas continuar y estás utilizando el archivo de demostración, presiona Ctrl + Z tres veces para deshacer las conversiones de tabla. O cierra el archivo sin guardar y vuelve a abrirlo. Estamos a punto de cambiar las propiedades de la tabla ampliando un poco el procedimiento.
Cómo cambiar un formato
Listado A recorre la colección de Tablas, pero puedes hacer mucho más que convertir las tablas a texto. Puedes aplicar un nuevo estilo de tabla, cambiar el color del borde, entre otras cosas. Mantendremos el siguiente procedimiento, Listado B, tan simple como el primero para cambiar solo una propiedad, el color del borde exterior.
Listado B
Cómo gestionar eficazmente grandes volúmenes de correo electrónicoSub CambiarColorBorde()
'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
Next
End Sub
Este procedimiento también recorre la colección de Tablas, 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 colores). Pero una vez que sepas cómo recorrer la colección de Tablas, es fácil hacer cambios automáticos más elaborados utilizando VBA.
Figura C
Hay un poco de manejo de errores en ambos procedimientos, pero es posible que desees más. Además, es poco probable que quieras realizar todos esos pasos cada vez que desees ejecutar el procedimiento. En su lugar, agrega la macro a la Barra de Acceso Rápido. Para hacerlo, lee Cómo agregar macros de Office a la barra de acceso rápido para un acceso rápido.
En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Software, allí encontraras muchos artículos similares a Cómo convertir tablas de Microsoft Word a texto y cambiar el color del borde en VBA , tenemos lo ultimo en tecnología 2023.
Artículos Relacionados