web-dev-qa-db-fra.com

Est-il possible d'attribuer un style spécifique à toutes les références croisées dans Word 2007?

Rien de plus à ajouter, je voudrais changer le style de toutes références croisées J'ai dans un document Word 2007 à la fois. Mais je n'ai aucune idée de la façon de le faire. Comment cela peut-il être fait?

35
Drake

Certains types de référence croisés sont automatiquement formatés avec le style "référence intense", mais la plupart sont formatés comme un texte "normal".

Pour appliquer le style "référence intense" au texte de la référence croisée:

  • sélectionnez le texte
  • choisissez l'onglet "Accueil" dans le ruban
  • utilisation des boutons haut-bas ou du bouton déroulant du groupe "Styles" du ruban, choisissez le style "référence intense" (ou un autre style si vous préférez)

Pour changer l'apparence de tout texte d'un style donné:

  • choisissez l'onglet "Accueil" dans le ruban
  • utilisation du bouton déroulant dans le groupe "Styles" du ruban, choisissez "Appliquer des styles ..."
  • dans la boîte de dialogue "Appliquer des styles" sous "Nom de style", choisissez le nom du style que vous souhaitez modifier (par exemple. référence intense ")
  • Cliquez sur le bouton "Modifier ..."
  • Changez le formatage en fonction de vous et cliquez sur "OK"

Pour appliquer un style à toutes les références croisées à la fois:

  • Presse Alt+F9 Pour afficher les codes de champ
  • Sélectionnez l'onglet "Accueil" dans le ruban
  • Cliquez sur "Remplacer" dans le groupe "Modification"
  • Dans le champ "Trouver quoi", tapez ^19 REF
    • (C'est caret-un-neuf-espace-r-e-f)
  • Cliquez dans le champ "Remplacer par", mais ne tapez rien
  • Cliquez sur le bouton "Plus"
  • La partie inférieure de la boîte de dialogue doit être intitulée "Remplacer" (avec une règle horizontale après-la-question)
  • Cliquez sur le bouton "Format" et sélectionnez "Style ..."
  • Choisissez un style (E.G. "Intense référence") et cliquez sur OK
  • Il devrait maintenant montrer le style que vous avez sélectionné sous le champ "Remplacer par"
  • Cliquez sur "Remplacer tout" si vous vous sentez courageux ou utilisez "Rechercher ensuite" et "Remplacer" pour étaler et remplacer ou ignorer le style de chaque code de référence individuellement
  • Presse Alt+F9 masquer les codes de champ

Voir Cette page Pour plus d'informations sur les codes spéciaux à rechercher et à remplacer.

Voici une macro qui ajoutera le commutateur \* mergeformat à chacun des champs. Cet interrupteur est nécessaire pour maintenir la mise en forme d'être perdue si vous faites une mise à jour sur le terrain. Vous pouvez affecter la macro à une touche de frappe et passera parmi les champs une à la fois pour chaque fois que vous appuyez sur la touche de frappe. Vous pouvez également modifier la macro pour boucler sur tout le document pour automatiser le processus.

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
  • Presse Alt+F9 Pour afficher les codes de champ
  • Utilisez la macro suivante pour ajouter Charformat à toutes les références croisées. Cette macro ajoute la chaîne sur le champ uniquement si ce n'est pas déjà là.

    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
    
  • Utilisez cette macro pour formater toutes les références croisées avec le style "référence subtil" (assurez-vous d'avoir un tel style et que les codes de champ sont affichés):

    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
    
  • Presse Alt+F9 masquer les codes de champ

5
cyborg

modification de la macro téléchargée par le cyborg, nous pouvons facilement automatiser montrant et masquant les codes de champ. Pour que chaque fois que nous souhaitons mettre à jour, nous n'avons pas à utiliser des codes de champ à basculer. J'ai utilisé le code suivant pour ajouter un code de code de champ.

ActiveDocument.ActiveWindow.View.ShowFieldCodes = False

La macro complète est la suivante:

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

C'est la première fois que j'utilise des macros pour accélérer mon travail en mot. Merci Cyborg pour une macro aussi utile.

3
Jaykrushna patel

Manière rapide et efficace:

  1. Sélectionnez un texte avec le formateur que vous souhaitez utiliser pour les références.
  2. Sélectionnez l'onglet Accueil dans le ruban.
  3. Cliquez avec le bouton droit de la souris sur le style normal et choisissez Mettre à jour la sélection normale de correspondance.
  4. Mettre à jour les références avec CtrlAF9.
0
Evgeny

Cette macro ouvre la boîte de dialogue de référence croisée pour insérer une référence croisée à la position du curseur actuel.

Lorsque vous fermez la boîte de dialogue XREF après avoir inséré la référence, la macro reprend pour formater la référence croisée insérée à Superscript.

Sub XrefSuper()
'
' This opens the Cross Reference dialogue box to insert a cross reference at the current cursor position.
'   When the dialogue box is closed after inserting the reference the macro resumes to format the inserted cross reference to superscript.
'
'
Dim wc As Integer
    wc = ActiveDocument.Characters.Count

Dim dlg As Dialog
    Set dlg = Dialogs(wdDialogInsertCrossReference)
        dlg.Show 'Open dialogue and perform the insertion from the dialog box) 
                 'Macro continues after closing CrossRef dialogue box

    If wc = ActiveDocument.Characters.Count Then Exit Sub   'If we failed to insert something then exit

    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Superscript = wdToggle
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.Font.Superscript = wdToggle
End Sub

Grâce à Graham Skan à ExpertSExchange pour savoir comment ouvrir le dialogue XREF.

0
TJH