Desea un estilo de Word que inserte automáticamente un marcador cada vez que lo aplique al texto. Word no ofrece una propiedad de estilo integrada para adjuntar una acción de marcador. Este artículo explica cómo usar una macro adjunta al estilo para insertar un marcador cuando aplica el estilo. Aprenderá a crear un estilo personalizado, escribir una macro de VBA que se ejecute al aplicar el estilo y asignar esa macro al estilo para la creación automática de marcadores.
Puntos clave: Automatizar marcadores con un estilo de Word
- Creación de un estilo personalizado en Inicio > Estilos > Crear un estilo: Cree un nuevo estilo de párrafo o de carácter que active la macro del marcador.
- Macro de VBA en Desarrollador > Visual Basic > Insertar módulo: Escriba una macro breve que inserte un marcador con el nombre del texto seleccionado cuando se aplique el estilo.
- Macro adjunta mediante los eventos Document_New o Document_Open: Use AutoOpen o AutoNew para ejecutar la macro automáticamente cuando aplique el estilo a documentos nuevos o existentes.
Comprender la función de estilo con marcador automático
Los estilos de Word controlan las propiedades de fuente, párrafo y formato. No incluyen un campo ni una configuración para agregar un marcador. Para que un estilo aplique un marcador al usarlo, necesita una macro de Visual Basic for Applications que se ejecute cuando se aplique el estilo. La macro lee el texto seleccionado e inserta un marcador con ese texto como nombre del marcador. Los marcadores en Word almacenan una ubicación o selección para referencias cruzadas, hipervínculos o navegación. Este enfoque funciona tanto para estilos de párrafo como de carácter. Requisitos previos: habilite la pestaña Desarrollador en Word y permita la ejecución de macros en su documento o plantilla.
Pasos para crear un estilo que inserte un marcador automáticamente
Siga estos pasos para configurar la macro y el estilo. Primero creará un estilo personalizado, luego escribirá la macro y, por último, adjuntará la macro al estilo mediante un evento de documento.
Paso 1: Crear el estilo personalizado
- Abrir el panel Estilos
Presione Ctrl+Alt+Shift+S para abrir el panel Estilos. Haga clic en el botón Nuevo estilo en la esquina inferior izquierda. - Definir las propiedades del estilo
En el cuadro de diálogo Crear nuevo estilo a partir del formato, escriba un nombre como “AutoBookmark”. Elija Párrafo o Carácter en Tipo de estilo. Establezca la fuente, el tamaño y otros formatos según sea necesario. - Guardar el estilo
Seleccione “Nuevos documentos basados en esta plantilla” si desea que el estilo esté disponible en todos los documentos futuros. Haga clic en Aceptar.
Paso 2: Habilitar la pestaña Desarrollador y abrir el editor de VBA
- Mostrar la pestaña Desarrollador
Vaya a Archivo > Opciones > Personalizar cinta de opciones. En Fichas principales, marque Desarrollador. Haga clic en Aceptar. - Abrir el editor de VBA
En la pestaña Desarrollador, haga clic en Visual Basic. Como alternativa, presione Alt+F11.
Paso 3: Escribir la macro para insertar un marcador
- Insertar un nuevo módulo
En el editor de VBA, haga clic con el botón derecho en su documento o en el proyecto Normal en el Explorador de proyectos. Elija Insertar > Módulo. - Pegar el código de la macro del marcador
Copie y pegue el siguiente código en el módulo:Sub InsertBookmarkOnStyle()
Dim sel As Selection
Set sel = Selection
If sel.Type = wdSelectionNormal Then
If sel.Words.Count >= 1 Then
Dim bkmName As String
bkmName = Replace(sel.Text, " ", "_")
bkmName = Left(bkmName, 40)
bkmName = Replace(bkmName, vbCr, "")
ActiveDocument.Bookmarks.Add Name:=bkmName, Range:=sel.Range
End If
End If
End Sub
Esta macro crea un marcador usando el texto seleccionado, reemplaza los espacios por guiones bajos y limita el nombre a 40 caracteres. - Guardar la macro
Presione Ctrl+S para guardar el módulo. Si se le solicita, guarde el documento como un archivo habilitado para macros (.docm).
Paso 4: Adjuntar la macro al estilo mediante un evento de documento
- Abrir el objeto Document
En el editor de VBA, haga doble clic en “ThisDocument” bajo su proyecto en el Explorador de proyectos. - Agregar el evento AutoOpen o AutoNew
Pegue el siguiente código para ejecutar la macro cuando se abra el documento o se cree un documento nuevo:Private Sub Document_Open()
Application.OnTime When:=Now + TimeValue("00:00:01"), Name:="InsertBookmarkOnStyle"
End Sub
Esto retrasa la macro un segundo para asegurar que el estilo se aplique primero. Para documentos nuevos, usePrivate Sub Document_New()en su lugar. - Guardar y cerrar el editor de VBA
Presione Ctrl+S y luego cierre el editor.
Paso 5: Probar el estilo con marcador automático
- Aplicar el estilo al texto
Seleccione una palabra o frase en su documento. En la pestaña Inicio, haga clic en el estilo AutoBookmark en la galería Estilos. - Verificar el marcador
Presione Ctrl+G para abrir el cuadro de diálogo Ir a. En Ir a, seleccione Marcador. El nombre del marcador debe coincidir con el texto seleccionado (espacios reemplazados por guiones bajos).
Problemas comunes y limitaciones del estilo con marcador automático
El nombre del marcador contiene caracteres no válidos
Los nombres de marcador de Word no pueden contener espacios ni comenzar con un número. La macro anterior reemplaza los espacios por guiones bajos. Si su texto comienza con un dígito, la macro fallará. Modifique la macro para anteponer “Bkm_” al nombre: bkmName = "Bkm_" & bkmName.
La macro no se ejecuta cuando se aplica el estilo
El evento Document_Open se ejecuta solo cuando se abre el documento, no cuando se aplica el estilo. Para activar la macro al aplicar el estilo, debe usar el enfoque Application.OnTime que se muestra, que ejecuta la macro una vez después de un retraso. Para uso repetido, aplique el estilo y luego ejecute la macro manualmente presionando Alt+F8 y seleccionando InsertBookmarkOnStyle.
El marcador sobrescribe los marcadores existentes
Si el texto seleccionado coincide con el nombre de un marcador existente, Word sobrescribe el marcador anterior. Agregue una comprobación en la macro para preguntar antes de sobrescribir: If ActiveDocument.Bookmarks.Exists(bkmName) Then MsgBox "Bookmark already exists."
Advertencias de seguridad de documentos habilitados para macros
Word deshabilita las macros de forma predeterminada. Guarde el documento en una ubicación de confianza o firme digitalmente la macro para evitar advertencias.
Inserción manual de marcadores frente a estilo habilitado para macros
| Elemento | Inserción manual de marcadores | Estilo habilitado para macros |
|---|---|---|
| Esfuerzo de configuración | Ninguno, integrado | Requiere macro de VBA y creación de estilo |
| Velocidad | Seleccionar texto, Insertar > Marcador, escribir nombre | Aplicar estilo, la macro se ejecuta automáticamente |
| Consistencia | Depende de la nomenclatura del usuario | Impone una convención de nomenclatura (espacios a guiones bajos) |
| Requiere permiso de macros | No | Sí |
| Funciona en Word Online | Sí | No |
Ahora puede crear un estilo de Word que inserte automáticamente un marcador al aplicarlo. La macro cambia el nombre del marcador según el texto seleccionado y limita la longitud del nombre. Pruebe la configuración con un documento de ejemplo. Para uso avanzado, modifique la macro para incluir un prefijo como “Bkm_” y evitar conflictos de nombres con marcadores existentes.