Steve a un document avec du texte qui indique où une image doit être placée. Ce texte se compose du nom de l’image (tel que « image01.jpg »)

entre parenthèses. Il cherche un moyen de remplacer automatiquement chaque nom d’image par l’image réelle.

Cela ne peut pas être fait avec les fonctionnalités de recherche et de remplacement standard de Word, mais cela peut être fait à l’aide d’une macro. L’idée serait de rechercher dans le document le texte du marqueur (les noms de l’image) et, s’il en trouve un, de saisir le nom de l’image et de remplacer le texte du marqueur par l’image réelle. Voici une macro qui implémente ces étapes:

Sub ReplaceImages()

Dim sMarkerText As String     Dim sFigName As String     Dim sFigPath As String

' Change to the path to the pictures, with a trailing slash.

sFigPath = "C:\Users\Steve\Pictures\"



' Change to marker text. Can include wildcards.

sMarkerText = "(image??.jpg)"



' Search through document for marker text     Selection.Find.ClearFormatting     With Selection.Find         .Text = sMarkerText         .Replacement.Text = ""

.Forward = True         .Wrap = wdFindContinue         .Format = True         .MatchCase = False         .MatchWholeWord = False         .MatchWildcards = False         .MatchSoundsLike = False         .MatchAllWordForms = False     End With     Selection.Find.Execute     While Selection.Find.Found         ' Found a match, so grab name         ' Need to adjust for parens in marker text         sFigName = Mid(Selection, 2, Len(Selection) - 2)



' Delete the marker text         Selection.Delete

' Insert the picture         Selection.InlineShapes.AddPicture FileName:= _           sFigPath & sFigName, LinkToFile:=False, _           SaveWithDocument:=True         Selection.Find.Execute     Wend End Sub

Il y a deux choses que vous devez modifier dans le code de la macro: les valeurs stockées dans les variables sFigPath et sMarkerText. Le contenu de sMarkerText, comme indiqué, correspondra à toutes les parenthèses dans lesquelles le mot « image »

est suivi de deux caractères (tels que 01, 02, 97 ou XY) et le « .jpg »

extension.

La méthode Find de l’objet Selection implémente une action Find réelle pour la toute première occurrence du texte du marqueur. S’il est trouvé, le code de la boucle While …​ Wend entre en jeu. Cela saisit le nom de fichier et l’assigne à la variable sFigName. Ensuite, le texte du marqueur trouvé est supprimé et une image en ligne insérée à sa place. Enfin, la ligne Selection.Find.Execute trouve l’occurrence suivante du texte du marqueur, le cas échéant.

La macro insère les images en ligne et n’effectue aucun traitement supplémentaire sur celles-ci.

_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 (10135) s’applique à Microsoft Word 2007, 2010, 2013, 2016, 2019 et Word dans Office 365.