Ajout de mots entre guillemets à un index (Microsoft Word)
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]
.