Saltar al contenido

¿Es posible asignar un estilo específico a todas las referencias cruzadas en Word 2007?

Haz todo lo posible por interpretar el código correctamente antes de aplicarlo a tu proyecto si ttienes algo que aportar puedes decirlo en los comentarios.

Solución:

Algunos tipos de referencias cruzadas se formatean automáticamente con el estilo de “referencia intensa”, pero la mayoría tienen el formato de texto “normal”.

Para aplicar el estilo de “referencia intensa” al texto de la referencia cruzada:

  • seleccionar el texto
  • elija la pestaña “Inicio” en la cinta
  • usando los botones arriba-abajo o el botón desplegable en el grupo “Estilos” de la cinta, elija el estilo de “referencia intensa” (u otro estilo si lo prefiere)

Para cambiar la apariencia de todo el texto de un estilo determinado:

  • elija la pestaña “Inicio” en la cinta
  • usando el botón desplegable en el grupo “Estilos” de la cinta, elija “Aplicar estilos …”
  • en el cuadro de diálogo “Aplicar estilos” en “Nombre de estilo”, elija el nombre del estilo que desea cambiar (por ejemplo, “referencia intensa”)
  • Haga clic en el botón “Modificar …”
  • Cambie el formato a su gusto y haga clic en “Aceptar”

Para aplicar un estilo a todas las referencias cruzadas a la vez:

  • prensa Alt+F9 para mostrar códigos de campo
  • Seleccione la pestaña “Inicio” en la cinta
  • Haga clic en “Reemplazar” en el grupo “Edición”.
  • En el campo “Buscar qué”, escriba ^19 REF
    • (Eso es intercalado-uno-nueve-espacio-REF)
  • Haga clic en el campo “Reemplazar por”, pero no escriba nada.
  • Haga clic en el botón “Más”
  • La sección inferior del cuadro de diálogo debe titularse “Reemplazar” (con una regla horizontal después).
  • Haga clic en el botón “Formato” y seleccione “Estilo …”
  • Elija un estilo (por ejemplo, “Referencia intensa”) y haga clic en Aceptar
  • Ahora debería mostrar el estilo que seleccionó en el campo “Reemplazar con”
  • Haga clic en “Reemplazar todo” si se siente valiente o use “Buscar siguiente” y “Reemplazar” para recorrer y reemplazar u omitir el estilo de cada código de campo de referencia individualmente.
  • prensa Alt+F9 para ocultar códigos de campo

Consulte esta página para obtener más información sobre códigos especiales en Buscar y reemplazar.

Aquí hay un macro eso agregará el interruptor * mergeformat a cada uno de los campos. Este interruptor es necesario para evitar que se pierda el formato si realiza una actualización de campo. Puede asignar el macro a una pulsación de tecla y recorrerá los campos de uno en uno cada vez que presione la tecla. También puede editar el macro para recorrer todo el documento para automatizar el proceso.

Sub mf()
'
' mf Macro
' Find cross references and add * mergeformat
'
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "^19 REF"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.TypeText Text:="* mergeformat "
    Selection.Find.Execute
End Sub

  • prensa Alt+F9 para mostrar códigos de campo
  • Utilice lo siguiente macro para agregar CHARFORMAT a todas las referencias cruzadas. Esta macro agrega el string al campo solo si aún no está allí.

    Sub SetCHARFORMAT()
    '
    ' Set CHARFORMAT switch to all REF fields. Replace MERGEFORMAT.
    '
    '
        Dim oField As Field
        Dim oRng As Range
        For Each oField In ActiveDocument.Fields
        'For Each oField In Selection.Fields
            If InStr(1, oField.Code, "REF ") = 2 Then
                If InStr(1, oField.Code, "MERGEFORMAT") <> 0 Then
                    oField.Code.Text = Replace(oField.Code.Text, "MERGEFORMAT", "CHARFORMAT")
                End If
                If InStr(1, oField.Code, "CHARFORMAT") = 0 Then
                    oField.Code.Text = oField.Code.Text + "* CHARFORMAT "
                End If
            End If
        Next oField
    
    
    End Sub
    
  • Utilizar esta macro para formatear todas las referencias cruzadas con el estilo “Referencia sutil” (asegúrese de tener ese estilo y de que se muestren los códigos de campo):

    Sub SetCrossRefStyle()
    '
    ' Macro to set styole of all cross references to "Subtle Reference"
    '
    '
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        Selection.Find.Replacement.Style = ActiveDocument.Styles( _
            "Subtle Reference")
        With Selection.Find
            .Text = "^19 REF"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = False
            .MatchWholeWord = False
            .MatchKashida = False
            .MatchDiacritics = False
            .MatchAlefHamza = False
            .MatchControl = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    End Sub
    
  • prensa Alt+F9 para ocultar códigos de campo

editando el macro subido por el cyborg, podemos automatizar fácilmente mostrar y ocultar los códigos de campo. para que cada vez que deseemos actualizar no tengamos que usar códigos de campo de alternancia. Usé el siguiente código para agregar alternar el código de campo.

ActiveDocument.ActiveWindow.View.ShowFieldCodes = False

El completo macro es como sigue:

Sub SetCrossRefStyle()
'
' Macro to set styole of all cross references to "Subtle Reference"
'
'
ActiveDocument.ActiveWindow.View.ShowFieldCodes = True
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles( _
    "Subtle Reference")
With Selection.Find
    .Text = "^19 REF"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchKashida = False
    .MatchDiacritics = False
    .MatchAlefHamza = False
    .MatchControl = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
ActiveDocument.ActiveWindow.View.ShowFieldCodes = False
End Sub

Esta es la primera vez que uso macros para acelerar mi trabajo en Word. gracias cyborg por tanta ayuda macro.

Comentarios y puntuaciones del post

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *