AYUDA CON MACRO PARA MICROSOFT OFFICE 2019

Anónimas
2021-03-11T14:04:29+00:00

Cordial saludo

Espero que se encuentren muy bien. Quisiera solicitar su ayuda con una macro que no me está funcionando bien en Microsoft Word 2019. Lo que pasa es que lo que se quiere hacer con esta macro es reemplazar ciertos "textos" por "imágenes" que están alojadas en un banco de imágenes en el computador local. Lo que debería hacer la macro es buscar en el documento Word todos los textos que estén entre paréntesis "( )" y que contengan la palabra "imagen" seguidos de dos carácteres (ejemplo: 01, 02, 03, etc.) y que tengan la extensión ".jpg"; y reemplazarlos por las imágenes del banco de imágenes que tengan el mismo nombre. Por poner un ejemplo, la macro debería cambiar los textos (imagen01.jpg) y (imagen02.jpg) por las imágenes que tienen el nombre imagen01 e imagen02 (ambas guardadas con extensión .jpg; por tal razón la macro tiene los comodines "??" sin embargo veo que por más que trato la macro no funciona cuando están presentes los comodines "??" (lo cual en teoría debería hacer que la macro busque los textos que cumplan con la condición de empezar con la palabra "imagen" tener la extensión ".jpg" y estar entre paréntesis). Agradecería mucho si pueden ayudarme a encontrar el error. Muchas gracias.

Esta es la macro:

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 = "AQUÍ SE DEBE COLOCAR LA RUTA DONDE SE ALOJAN LAS IMAGENES"

    ' Change to marker text. Can include wildcards.

    sMarkerText = "(imagen??.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

Microsoft 365 y Office | Word | Para la casa | Windows

Pregunta bloqueada. Esta pregunta se migró desde la Comunidad de Soporte técnico de Microsoft. Puede votar si es útil, pero no puede agregar comentarios o respuestas ni seguir la pregunta.

0 comentarios No hay comentarios
{count} votos

1 respuesta

Ordenar por: Muy útil
  1. WordExperto 63,900 Puntos de reputación Moderador voluntario
    2021-03-11T15:24:47+00:00

    Hola Daniel:

    Esta es laweb del autor. Puedes preguntarle a él.

    Perdona, ya veo que lo has hecho.

    wordexperto.

    0 comentarios No hay comentarios