Cambiar el nombre de un marcador en Word 2010

13

A menudo uso marcadores en Word para crear documentos técnicos con enlaces internos a citas e información de uso común que debe ser coherente en todo el documento. Puede crearlos seleccionando el texto y luego yendo al menú Insert-> Links-> Bookmarky asignando un nombre, luego yendo a Insert-> Links-> Citationsy seleccionando el marcador para insertar. Esto luego insertará el texto de ese marcador en otra parte del documento.

Como ejemplo de por qué hago esto: a menudo tengo una página de inicio que enumera el estado del documento y esa información se repite en el pie de página, usando un marcador puedo configurar un enlace a ese texto y luego simplemente insertar ese enlace en el pie de página y se actualizará automáticamente cada vez que vaya a la vista previa de impresión o actualice todos los campos del documento. De esta forma puedo evitar hacer una búsqueda y reemplazar y solo sé que el texto correcto se actualizará en los lugares correctos.

ingrese la descripción de la imagen aquí

Ahora digamos que tengo un marcador que acabo de nombrar aproximadamente, solo para ponerlo en su lugar:
ingrese la descripción de la imagen aquí

No hay clic derecho para cambiar el nombre de un marcador y no puedo encontrar ninguna propiedad de documento que me permita modificarlo.

Puedo insertar un NUEVO marcador seleccionando el mismo texto y luego eliminando el anterior, pero obtienes esto:
ingrese la descripción de la imagen aquí

Luego debe hacer clic con el botón derecho en el campo y apuntarlo nuevamente al marcador (ahora con el nombre cambiado)

Esto no es completamente utilizable, especialmente en un documento grande donde este marcador se usa varias veces.

Busqué en Google y vi varios scripts de VBA en la web, como en esta pregunta, pero como efectivamente crean un nuevo boomark y eliminan el viejo, crean el mismo problema que el anterior y no son ideales.

¿Existe una forma más simple o más efectiva de cambiar el nombre de los marcadores en los documentos de Word? ¿O posiblemente estoy usando la herramienta Wrong Tool ™ para este trabajo?

Mokubai
fuente
¿Te refieres a Word 2013, en lugar de 2010?
Griego - Propuesta del Área 51 del
@LePressentiment mi copia de Word es 2010, pero no veo por qué la respuesta a continuación no se aplicaría a 2013 a menos que hayan revisado significativamente la función de marcadores entre versiones. De hecho, me sorprendería si lo hubieran hecho.
Mokubai
@LePressentiment Vea mi respuesta que Mokubai ha actualizado.
DavidPostill

Respuestas:

7

¿Existe una forma más simple o más efectiva de cambiar el nombre de los marcadores en los documentos de Word?

No hay una función de cambio de nombre incorporada en Word. Hay un par de opciones para solucionar esta falta:

  1. Use un complemento.

  2. Utiliza VBA.


Solución Complementaria

Use el complemento de la herramienta Marcador

Ofrece una interfaz de usuario amigable para hacer todo lo que el cuadro de diálogo Marcador estándar hará y mucho más.

Bookmark Tool fue desarrollado para Word 2003. Es totalmente funcional con Word 2007/2010.

...

Con la sección "Agregar / Cambiar nombre de marcador", agregar marcadores es muy sencillo.

  • Como en el diálogo estándar, simplemente selecciona texto, escribe un nombre en el campo y haz clic en "Agregar".
  • A diferencia del cuadro de diálogo estándar, la herramienta Marcador restringe la entrada de clave a caracteres de nombre de marcador válidos y le alerta si intenta crear un nombre de marcador duplicado.
  • También puede usar esta sección para cambiar el nombre de un marcador existente.

    ingrese la descripción de la imagen aquí

Complemento de herramienta de marcador de origen


Solución VBA

No hay una función de cambio de nombre. Debe eliminar el nombre anterior y marcar el rango con un nuevo nombre de marcador. Aquí hay un código VBA de muestra:

Sub ReNameBookMark()
    Dim doc As Word.Document
    Dim rng As Word.Range
    Dim bmk As Word.Bookmark
    Dim inpBookmark, repBookmark, fieldStr As String

    Set doc = Word.ActiveDocument

    inpBookmark = InputBox("Enter bookmark name that you want to be replaced:", "BookMark Replace")
    repBookmark = InputBox("Enter bookmark name replace with:", "BookMark Replace")

    Set rng = doc.Bookmarks(inpBookmark).Range
    Set bmk = doc.Bookmarks(inpBookmark)
    bmk.Delete
    rng.Bookmarks.Add (repBookmark)

    If doc.Fields.Count >= 1 Then
        For i = 1 To doc.Fields.Count
            fieldStr = doc.Fields(i).Code.Text
            If Left(fieldStr, 4) = " REF" Then
                doc.Fields(i).Code.Text = Replace(fieldStr, inpBookmark, repBookmark, , 1, vbTextCompare)
                doc.Fields(i).Update
            End If

            'MsgBox "Code = " & doc.Fields(i).Code & vbCr & "Result = " & doc.Fields(i).Result & vbCr
        Next i
    End If
End Sub

Fuente Cambiar el "nombre" de un marcador no el texto de la misma , con un bucle adicional para ejecutar a través de los campos del documento para cambiar cualquiera que pudiera hacer referencia al marcador de ser rebautizado.

Se debe tener cuidado al usar este script. Por ejemplo, al cambiar el nombre de cualquier marcador que simplemente se llame "REF" (o una variante mayúscula o minúscula de este) se romperán TODAS las referencias de manera divertida e inesperada. Esto es solo un ejemplo y una solución aproximada.

Si desea renombrar por lotes múltiples marcadores de una vez, vea ¿Hay una manera más simple o más efectiva de renombrar marcadores en documentos de Word? que también incluye código de VBA de muestra.

DavidPostill
fuente
@Mokubai ¿Parece que puede hacer esto con el complemento (vea la respuesta actualizada)? Lamentablemente, no tengo una copia de Word para probar ...
DavidPostill
Le haré una prueba al complemento por la mañana cuando regrese a mi PC. Probablemente esté bien para el hogar, pero en el trabajo no creo que pueda usarlo ya que nuestro departamento de TI puede ser un poco cauteloso con ese tipo de cosas. Probaré ambos métodos y veré si puedo mejorar su script VBA para hacer la búsqueda y reemplazar. Si llego a algún lugar y está bien contigo, me gustaría editarlo en tu respuesta.
Mokubai
@LePressentiment En caso de que sea de alguna ayuda para lo que desea, he agregado algunas características al script de VBA anterior para darle un cuadro de entrada para los nombres actuales y nuevos, e hice una búsqueda y reemplazo sucio en los campos que hacen referencia a esos marcadores. No es perfecto, pero es mejor que nada y será más que adecuado para lo que necesito hacer en el trabajo.
Mokubai
El complemento de la herramienta Marcador rompe las referencias a los marcadores después de cambiarles el nombre (para mí en Word 365 en Windows).
filups21
1

Tuve este mismo problema y me topé con esta solución / solución alternativa.

Para el texto al que desea hacer referencia, un título en mi caso, configure un título de propiedad de documento de la siguiente manera:

Insert tabQuick PartsDocument PropertyTitle

Esto agrega un cuadro editable para el texto en el que puede escribir su título.

Luego, para referenciarlo, simplemente puede ir a Insert tabQuick PartsFieldTitle, o hacer lo que hice accidentalmente: tenía una referencia configurada y cuando la actualicé F9agregué el cuadro de título al que hacía referencia.

Esto está muy bien, ya que se actualiza el cuadro Título de todas las referencias de actualización automáticamente sin pulsar F9!!! Esto es genial cuando tiene la referencia en un encabezado, ya que la función Ctrl+ Ano captura lo que está en el encabezado / pie de página y generalmente tendría que hacer doble clic dentro del encabezado / pie de página para seleccionar y presionar F9para actualizar.

Entonces, en lugar de crear una referencia de título como se indicó anteriormente, haga esto:

  • Después de configurar el cuadro de título, cree un marcador del cuadro de título:

    • Seleccione el cuadro de título (asegúrese de hacer clic en la pestaña de título en la parte superior para seleccionar todo el cuadro)
    • InsertBookmark→ (dígalo Project_title) →add
  • Luego agregue la referencia de esta manera:

    • Insert tabQuick PartsFieldRef(y seleccione Project_titleo como lo llame)
Sotavento
fuente