Ответы пользователя по тегу Макросы
  • Почему макрос вставки изображений в Word работает странно?

    @js-newbie Автор вопроса
    Разобрался сам. Строка Selection.Find.Execute в цикле Do While (.Execute = True) ... Loop была лишней. Она и заставляла при нахождении ссылки сразу искать следующую и только потом выполнять действия.

    В итоге макрос должен быть таким:
    Sub Link2img()
        Dim TempData As DataObject, Count As Integer, ImgURL, ImgNum As String
        Count = 0
        Selection.HomeKey Unit:=wdStory
        With Selection.Find
            .ClearFormatting
            .Text = "https://aaa.bbb.com/images/?*.[jpng]{3}"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchAllWordForms = False
            .MatchSoundsLike = False
            .MatchWildcards = True
            Do While (.Execute = True)
                Selection.Copy
                Set TempData = New DataObject
                TempData.GetFromClipboard
                ImgURL = TempData.GetText
                Selection.Delete
                Selection.InlineShapes.AddPicture FileName:=ImgURL, LinkToFile:=False, SaveWithDocument:=True
                Count = Count + 1
            Loop
        End With
        If Count < 2 Then ImgNum = " изображение"
        If Count > 1 And Count < 5 Then ImgNum = " изображения"
        If Count > 4 Then ImgNum = " изображений"
        MsgBox ("Вставлено " & Count & ImgNum)
    End Sub
    Ответ написан