Word VBA Макросы: Сохранить картинку из документа

Автор Посетитель, 02 октября 2017, 20:47

Посетитель

Здравствуйте!
А можно ли макросом сразу сохранить рисунок из документа Word на диск?

Действия примерно такие:
выделить рисунок, запустить макрос, потом выбрать папку сохранения и сохранить.

Администратор

В самом ворде 2010+ можно сохранить рисунок на жёсткий диск, но в VBA такой возможности нет.
В интернете я нашёл только способ с использованием api-функций, но он сложный (нужно разбираться, что там). Не хочу разбираться в этом.

Администратор

Можно попробовать использовать программу "Publisher". Она входит в пакет "MS Office" (может быть не в любой пакет, т.к. пакеты есть разные).

Макрос
Sub макрос()

    Dim pub As Object, pub_doc As Object, pub_shape As Object
   
    '1. Копирование рисунка (он должен быть выделен)
    Selection.Copy
    '2. Запуск программы "Publisher".
    Set pub = CreateObject("Publisher.Application")
    '3. Присваиваем имя "pub_doc" активному файлу программы "Publisher", чтобы потом
        ' в коде обращаться к этому файлу по этому имени.
    Set pub_doc = pub.ActiveDocument
    '4. Вставка в активный файл, на первый лист рисунка из буфера обмена.
    pub_doc.Pages(1).Shapes.Paste
    '5. Присваиваем имя "pub_shape" вставленному рисунку, чтобы потом
        ' в коде обращаться к рисунку по этому имени.
    Set pub_shape = pub_doc.Pages(1).Shapes(1)
    '6. Сохранение рисунка на жёстком диске.
    ' 0 - pbPictureResolutionDefault
    pub_shape.SaveAsPicture FileName:="C:\Users\User\Desktop\рисунок.jpg", pbResolution:=0
    '7. Закрытие программы "Publisher".
    pub.Quit
   
End Sub
[свернуть]

Посетитель

Хорошо,  спасибо, попробую так. Хотелось просто ускорить процесс и не сохранять все рисунки сразу (такое происходит при сохранении файла в формат  html).

Администратор