Steve tiene un documento con texto que indica dónde debe colocarse una imagen. Este texto consta del nombre de la imagen (como «image01.jpg»)

entre paréntesis. Está buscando una forma de reemplazar automáticamente el nombre de cada imagen con la imagen real.

Esto no se puede hacer con las capacidades normales de búsqueda y reemplazo de Word, pero se puede hacer usando una macro. La idea sería buscar en el documento el texto del marcador (los nombres de las imágenes) y, si se encuentra, tomar el nombre de la imagen y reemplazar el texto del marcador con la imagen real. Aquí hay una macro que implementa estos pasos:

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

Hay dos cosas que necesita modificar en el código de la macro: los valores almacenados en las variables sFigPath y sMarkerText. El contenido de sMarkerText, como se muestra, coincidirá con cualquier paréntesis en el que la palabra «imagen»

va seguido de dos caracteres (como 01, 02, 97 o XY) y el «.jpg»

extensión.

El método Find del objeto Selection implementa una acción Find real para la primera aparición del texto del marcador. Si se encuentra, entra en juego el código del ciclo While …​ Wend. Esto toma el nombre del archivo y lo asigna a la variable sFigName. Luego, el texto del marcador encontrado se elimina y se inserta una imagen en línea en su lugar. Por último, la línea Selection.Find.Execute busca la siguiente aparición del texto del marcador, si existe.

La macro inserta imágenes en línea y no realiza ningún procesamiento adicional en ellas.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios WordTips), he preparado una página especial que incluye información útil.

link: / wordribbon-WordTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

WordTips es su fuente de formación rentable en Microsoft Word.

(Microsoft Word es el software de procesamiento de texto más popular del mundo). Este consejo (10135) se aplica a Microsoft Word 2007, 2010, 2013, 2016, 2019 y Word en Office 365.