Форум по VBA и MS Office

Word => Макросы в Word => Тема начата: Посетитель от 22 марта 2019, 13:00

Название: Макросы: Вставка рисунка в нужное место документа средствами VBA в Word10.
Отправлено: Посетитель от 22 марта 2019, 13:00
В документе я вставляю курсор в нужное место и затем в позицию курсора я хочу с помощью макроса вставить рисунок из файла. Для вставки рисунка я использую этот код:
    ActiveDocument.Shapes.AddPicture _
    FileName:="полное имя файла с рисунком", Anchor:=Selection.Range

В Word7 все получается, а в Word10 рисунок вставляется в начало документа, а не в то место, где находится курсор.
Подскажите, что нужно сделать?

Мне нужно вставить плавающий рисунок поверх текста. Неплавающий рисунок (тип "в тексте") мне не подходит.
Название: Re: Макросы: Вставка рисунка в нужное место документа средствами VBA в Word10.
Отправлено: Администратор от 22 марта 2019, 15:13
Макрос
Sub Макрос()
   
    Dim shape As shape
    Dim FN As String
   
   
    ' Полное имя файла-рисунка.
    FN = "C:\Users\User\Desktop\Рисунок.png"
   
    ' Вставка неплавающего рисунка и превращение неплавающего рисунка в плавающий.
        ' При этом присваиваем рисунку имя 'shape' и далее в коде будем обращаться
        ' к рисунку по имени 'shape'.
    Set shape = Selection.InlineShapes.AddPicture(FileName:=FN, LinkToFile:=False, _
        SaveWithDocument:=True, Range:=Selection.Range).ConvertToShape
   
    ' Здесь можете делать нужные действия с рисункам, используя имя 'shape'.
        ' Например, так можно узнать левое положение рисунка.
        ' Информация запишется в View - Immediate Window.
    Debug.Print shape.Left
   
End Sub
[свернуть]
Название: Re: Макросы: Вставка рисунка в нужное место документа средствами VBA в Word10.
Отправлено: Посетитель от 22 марта 2019, 16:51
Уважаемый Администратор! Все получилось! Огромное спасибо.
Одна просьба: объясните, почему мой вариант кода не работал в Word10, а работал в Word7. Что не так? Нужно для самообразования.
Название: Re: Макросы: Вставка рисунка в нужное место документа средствами VBA в Word10.
Отправлено: Администратор от 22 марта 2019, 17:13
Предположу, что это брак в ворде 2010, и мне пришлось придумывать обходной способ.
Название: Re: Макросы: Вставка рисунка в нужное место документа средствами VBA в Word10.
Отправлено: Посетитель от 22 марта 2019, 23:25
спасибо