Lorsque vous travaillez avec de longs documents contenant des graphiques, il n’est pas inhabituel d’utiliser le champ INCLUDEPICTURE pour insérer réellement les graphiques dans le document. Si vous avez un grand nombre de ces champs dans votre document, vous souhaiterez peut-être un moyen de créer une «liste d’illustrations» qui inclut les noms des fichiers graphiques utilisés dans le document.

En utilisant une macro relativement simple, vous pouvez parcourir chaque instance du champ INCLUDEPICTURE dans votre document et extraire uniquement les noms des fichiers référencés. Ceux-ci peuvent ensuite être ajoutés à un nouveau document, de sorte que lorsque la macro est terminée, le nouveau document contienne simplement une liste des fichiers référencés dans les champs INCLUDEPICTURE. Voici une macro qui fera exactement cela:

Sub GetIncludePictures()

Dim oField As Field     Dim oCurrentDoc As Document     Dim oNewDoc As Document     Dim sFileName As String

Set oCurrentDoc = ActiveDocument     Set oNewDoc = Application.Documents.Add

For Each oField In oCurrentDoc.Fields         If oField.Type = wdFieldIncludePicture Then             sFileName = Replace(oField.Code, "INCLUDEPICTURE", "")

sFileName = Replace(sFileName, "MERGEFORMAT", "")

sFileName = Replace(sFileName, "\*", "")

sFileName = Replace(sFileName, "\d", "")

sFileName = Replace(sFileName, Chr(34), "")

sFileName = Replace(sFileName, "\\", "\")

sFileName = Trim(sFileName)

oNewDoc.Range.InsertAfter sFileName & vbCrLf         End If     Next oField

oNewDoc.Activate

Set oField = Nothing     Set oCurrentDoc = Nothing     Set oNewDoc = Nothing End Sub

Notez l’utilisation de la fonction Remplacer plusieurs fois dans la macro. Cette fonction remplace les occurrences d’une chaîne dans une autre chaîne par un autre texte. Cela peut sembler déroutant, mais c’est très pratique. À titre d’exemple, imaginez que vous avez une chaîne (sMyString) qui contient les caractères « Ceci est ma chaîne », et que vous utilisez ce qui suit:

SMyString = Replace(sMyString, "s", "X")

Cela entraîne le remplacement de chaque « s » minuscule de sMyString par un « X » majuscule. Le résultat est que sMyString contiendra désormais « ThiX iX my Xtring ».

Dans le cas de la macro GetIncludePictures, les plusieurs lignes qui contiennent les fonctions de remplacement fonctionnent pour supprimer tous les caractères superflus du code de champ, à l’exception du nom de fichier réel de l’image. Si vous souhaitez supprimer quelque chose d’autre, vous pouvez également ajouter d’autres lignes pour supprimer ces éléments. (Par exemple, si vous souhaitez supprimer un nom de chemin standard vers l’emplacement de stockage de vos images.)

Lorsque la macro est exécutée, la seule chose dans le nouveau document doit être le nom des images, comme dans les exemples suivants:

C:\mypics\picture1.tif ..\graphics\chap01\fig03.gif

Si vous ne vouliez que les noms de fichiers et non les noms de chemin d’accès complets, vous pouvez modifier un peu la macro GetIncludePictures pour inclure du code qui analysait le chemin. Vous pouvez le faire en ajoutant ce qui suit à la macro, juste après la ligne sFileName = Trim (sFileName):

While Instr(sFileName, "\") > 0                 sFileName = Mid(sFileName, Instr(sFileName, "\") + 1)

Wend

_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 (11777) s’applique à Microsoft Word 2007, 2010, 2013, 2016, 2019 et Word dans Office 365. Vous pouvez trouver une version de cette astuce pour le ancienne interface de menu de Word ici:

lien: / word-Extracting_INCLUDEPICTURE_File_Names [Extraction des noms de fichiers INCLUDEPICTURE].