Cómo generar automáticamente un glosario de Word a partir de entradas de índice
🔍 WiseChecker

Cómo generar automáticamente un glosario de Word a partir de entradas de índice

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.

ADVERTISEMENT

Í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.

  1. 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.
  2. 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.

  3. 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.
  4. 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.
  5. 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.
  6. 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.

ADVERTISEMENT

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.

ADVERTISEMENT