Mike a un document qui contient pas mal de mots entourés de guillemets. Il souhaite que les mots cités soient marqués pour inclusion dans un index et que les guillemets soient supprimés.

La meilleure façon d’apporter une telle modification à votre document consiste à utiliser une macro. La macro doit rechercher le texte entre guillemets, déterminer où il commence et s’arrêter, supprimer les guillemets, puis ajouter la marque d’index. (La marque est ajoutée par l’utilisation d’un champ XE.)

Il existe probablement de nombreuses manières de construire une telle macro. Ce qui suit est celui qui pourrait être utilisé:

Sub QuotesToIndexEntries()

Dim iOpenQuote As Integer     Dim iCloseQuote As Integer     Dim sP As String     Dim sPhrase As String     Dim iParas As Integer

If Selection.ExtendMode Then Exit Sub

iParas = Selection.Paragraphs.Count     Selection.StartOf unit:=wdParagraph, Extend:=wdMove     For J = 1 To iParas         Selection.MoveEnd unit:=wdParagraph         sP = Selection.Text         iOpenQuote = InStr(sP, Chr(34))

If iOpenQuote = 0 Then iOpenQuote = InStr(sP, Chr(147))



While iOpenQuote > 0             iCloseQuote = InStr(iOpenQuote + 1, sP, Chr(34))

If iCloseQuote = 0 Then                 iCloseQuote = InStr(iOpenQuote + 1, sP, Chr(148))

End If             If iCloseQuote > 0 Then                 sPhrase = Mid(sP, iOpenQuote + 1, _                   iCloseQuote - iOpenQuote - 1)

Selection.Collapse Direction:=wdCollapseStart                 Selection.MoveRight unit:=wdCharacter, _                   Count:=iOpenQuote - 1, Extend:=wdMove                 Selection.Delete unit:=wdCharacter, Count:=1                 Selection.MoveRight unit:=wdCharacter, _                   Count:=Len(sPhrase), Extend:=wdMove                 Selection.Delete unit:=wdCharacter, Count:=1

Selection.Fields.Add Range:=Selection.Range, _                   Type:=wdFieldEmpty, _                   PreserveFormatting:=False                 Selection.MoveLeft unit:=wdCharacter, Count:=1                 Selection.Delete unit:=wdCharacter, Count:=2                 Selection.TypeText Text:="XE " + Chr(34) + _                   sPhrase + Chr(34)

Selection.MoveRight unit:=wdCharacter, _                   Count:=1, Extend:=wdMove             End If             Selection.MoveEnd unit:=wdParagraph             sP = Selection.Text             iOpenQuote = InStr(sP, Chr(34))

If iOpenQuote = 0 Then iOpenQuote = InStr(sP, Chr(147))

Wend                  Selection.MoveStart unit:=wdParagraph, Count:=1     Next J End Sub

Pour utiliser la macro, sélectionnez simplement le texte que vous souhaitez affecter avant de l’exécuter. (Si vous souhaitez affecter l’ensemble du document, appuyez sur Ctrl + A avant d’exécuter la macro.)

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites WordTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / wordribbon-WordTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

WordTips est votre source pour une formation Microsoft Word rentable.

(Microsoft Word est le logiciel de traitement de texte le plus populaire au monde.) Cette astuce (3804) s’applique à Microsoft Word 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban de Word (Word 2007 et plus tard) ici:

link: / wordribbon-Adding_Quoted_Words_to_an_Index [Ajout de mots entre guillemets à un index].