Tiene un documento de Word con muchas entradas de índice marcadas y ahora necesita un glosario que enumere esos términos con sus definiciones o explicaciones. Copiar manualmente cada entrada de índice en una tabla aparte consume mucho tiempo y es propenso a errores. Word no tiene un comando integrado para convertir entradas de índice en un glosario, pero puede automatizar el proceso con una macro y unos cuantos pasos ingeniosos. Este artículo explica la diferencia entre un índice y un glosario, cómo extraer entradas de índice con una macro de VBA y cómo dar formato al resultado en una tabla de glosario limpia.
Puntos clave: automatizar la generación de un glosario a partir de entradas de índice
- Alt+F11 para abrir el editor de VBA y luego Insertar > Módulo: El punto de partida para ejecutar la macro que extrae el texto de las entradas de índice.
- Código de la macro Sub ExtractIndexEntries(): Recorre todos los campos XE del documento y copia el texto de la entrada a un documento nuevo.
- Buscar y reemplazar con el comodín ^&: Elimina los caracteres adicionales, como comillas y dos puntos, que la macro deja atrás.
Índice vs. glosario: qué hace cada función
Un índice en Word es una lista de términos con números de página que indican dónde aparece cada término en el documento. Las entradas de índice se marcan seleccionando texto y presionando Alt+Shift+X, lo que inserta un campo XE (entrada de índice). El índice se compila al insertar un campo INDEX y actualizarlo. Le indica al lector dónde encontrar un término.
Un glosario es una lista de términos con sus definiciones o explicaciones. No incluye números de página. Word no tiene una función nativa de glosario. Para crear un glosario, debe construirlo manualmente o extrayendo el texto de los términos de las entradas de índice y luego escribiendo o pegando las definiciones junto a cada término.
El método automático que se describe aquí solo funciona si ya ha marcado entradas de índice con los términos que desea en el glosario. Si sus entradas de índice incluyen subentradas o referencias cruzadas, también aparecerán en la lista extraída. Deberá limpiarlas después de la extracción.
Pasos para extraer entradas de índice y crear un glosario
Siga estos pasos para ejecutar una macro de VBA que extrae todo el texto de las entradas de índice de su documento y lo coloca en un documento nuevo. Después de la extracción, dé formato a la lista como una tabla de glosario de dos columnas.
- Abra el editor de VBA
Presione Alt+F11 para abrir el editor de Visual Basic for Applications. En la barra de menús, haga clic en Insertar y luego en Módulo. Aparece una ventana de código en blanco. - Pegue el código de la macro
Copie y pegue la siguiente macro en la ventana del módulo:
Sub ExtractIndexEntries()
Dim doc As Document
Dim newDoc As Document
Dim fld As Field
Dim entryText As String
Dim outputText As String
Set doc = ActiveDocument
Set newDoc = Documents.Add
For Each fld In doc.Fields
If fld.Type = wdFieldIndexEntry Then
entryText = fld.Code.Text
' Remove the XE prefix and braces
entryText = Replace(entryText, " XE ", "")
entryText = Replace(entryText, "\"", "")
outputText = outputText & entryText & vbCrLf
End If
Next fld
newDoc.Range.Text = outputText
MsgBox "Index entries extracted to new document."
End Sub
La macro recorre cada campo del documento activo. Cuando encuentra un campo XE, extrae el texto dentro del código de campo, elimina el comando XE y las comillas, y escribe el resultado en un documento nuevo en blanco. - Ejecute la macro
Presione F5 mientras el cursor está dentro del código de la macro, o haga clic en la flecha verde Ejecutar de la barra de herramientas de VBA. Un cuadro de mensaje confirma la extracción. Se abre un documento nuevo que contiene una entrada de índice por línea. - Limpie el texto extraído
En el documento nuevo, es posible que vea caracteres sobrantes como dos puntos, punto y coma o barras invertidas del formato de subentrada. Presione Ctrl+H para abrir Buscar y reemplazar. En el cuadro Buscar, escriba ^& (el comodín para cualquier carácter) y deje Reemplazar con vacío. Haga clic en Más >> y marque Usar comodines. Haga clic en Reemplazar todo para eliminar los caracteres no deseados. Repita con patrones específicos como : o ; si aparecen. - Elimine las entradas duplicadas
Si un término aparece en varias entradas de índice, la lista contendrá duplicados. Seleccione todo el texto del documento nuevo presionando Ctrl+A. En la pestaña Inicio, haga clic en Ordenar en el grupo Párrafo. Elija Párrafos y Texto, y luego haga clic en Aceptar. Con la lista ordenada seleccionada, vaya a la pestaña Inicio, haga clic en Reemplazar en el grupo Edición. En el cuadro Buscar, escriba ^&^13 (cualquier carácter seguido de una marca de párrafo). En el cuadro Reemplazar con, escriba ^&. Haga clic en Más >> y marque Usar comodines. Haga clic en Reemplazar todo repetidamente hasta que el número de reemplazos sea cero. Esto elimina las líneas idénticas a la línea anterior. - Convierta la lista en una tabla de glosario
Seleccione todo el texto limpio. En la pestaña Insertar, haga clic en Tabla y elija Convertir texto en tabla. En el cuadro de diálogo, establezca Número de columnas en 2. Para Separar texto en, elija Párrafos y Otro, y luego escriba dos puntos : si sus entradas contienen dos puntos que separan el término de su definición. Si sus entradas son solo términos sin definiciones, establezca Número de columnas en 1. Haga clic en Aceptar. Word crea una tabla con los términos extraídos en la columna izquierda. Después puede agregar definiciones en la columna derecha.
Problemas y limitaciones comunes al extraer entradas de índice
La macro devuelve líneas vacías o texto ilegible
Esto ocurre cuando el código del campo XE contiene formato de subentrada o referencias cruzadas. La macro elimina las comillas, pero puede dejar barras invertidas y llaves adicionales. Use Buscar y reemplazar con comodines para eliminar patrones como \: o \t. Como alternativa, modifique la macro para eliminar todos los caracteres después de dos puntos agregando una línea que divida entryText en los dos puntos y conserve solo la primera parte.
Aparecen entradas duplicadas después de la extracción
Si el mismo término está marcado como entrada de índice en varias páginas, la macro lo extrae varias veces. El método de eliminación de duplicados descrito en el paso 5 funciona para duplicados exactos. Para casi duplicados con ligeras variaciones de ortografía o puntuación, revise manualmente la lista antes de convertirla en tabla.
El glosario no incluye definiciones
Las entradas de índice en Word solo almacenan el texto del término y el texto opcional de la subentrada. No almacenan definiciones. Después de extraer los términos, debe agregar manualmente las definiciones en la columna derecha de la tabla. Para acelerar esto, use una segunda macro que abra un diccionario o un documento de referencia y busque cada término, pero eso requiere código personalizado que queda fuera del alcance de este artículo.
Extracción de entradas de índice vs. creación manual de glosario: diferencias clave
| Elemento | Método de extracción con macro | Creación manual del glosario |
|---|---|---|
| Tiempo requerido | Menos de 5 minutos para configurar y ejecutar | 30 minutos o más según la longitud del documento |
| Exactitud de la lista de términos | Coincide exactamente con cada entrada de índice marcada | Propensa a errores tipográficos y términos omitidos |
| Manejo de duplicados | Requiere un paso adicional de limpieza | Usted controla la duplicación mientras escribe |
| Necesidad de definiciones | Solo términos; las definiciones deben agregarse manualmente | Usted escribe las definiciones a medida que avanza |
| Requiere conocimientos de VBA | Copia y pega básico y ejecutar | Ninguno |
El método de extracción con macro ahorra tiempo cuando tiene una gran cantidad de entradas de índice. No elimina la necesidad de escribir definiciones, pero le ofrece una lista completa y precisa de términos con la que trabajar.
Una vez que tenga la tabla de glosario, puede ordenarla alfabéticamente seleccionando toda la tabla y haciendo clic en Ordenar en la pestaña Inicio. Elija Columna 1 y Texto. Esto garantiza que su glosario esté en el orden estándar de la A a la Z.
Para guardar la macro para documentos futuros, abra el editor de VBA, localice el proyecto Normal en el Explorador de proyectos, haga doble clic en ThisDocument y pegue la macro allí. Estará disponible en todos los documentos. También puede asignar la macro a un atajo de teclado yendo a Archivo > Opciones > Personalizar cinta de opciones > Atajos de teclado > Personalizar, seleccionando Macros y eligiendo Normal.NewMacros.ExtractIndexEntries.