Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2009, 14:45   #1
Nitro
 
Регистрация: 07.02.2009
Сообщений: 5
Плохо Макрос для сохранения всех картинок из Word в файл

Доброго времени суток всем форумчанам!!!!!!!!!!!!!
Видел подобную тему, но там толком не понял.
Подскажите пожалуйста кто знает VB как сохранить все картинки из документа Word в файл. Уже весь инет перевернул, ничего нет. Все говорят о какой-то API функции, но никто о ней не знает видимо это тайна .
Вот мой код:

Sub changeImages2()
Dim pic As Object
Dim ClipPicture As IPictureDisp
Dim FileName As String

For Each pic In ActiveDocument.Content.InlineShapes

pic.Select

Selection.Cut

FileName = "C:\my" 'Имя файла без расширения

Set ClipPicture = Clipboard.GetData(vbCFBitmap)
SavePicture ClipPicture, FileName & ".bmp"

Next

End Sub


Говорят что VB вроде не работает с Clipboard, надо API функцией воспользоваться, о которой я уже говорил выше.

Вобщем помогите пожалуйста. Буду весьма благодарен.
Nitro вне форума Ответить с цитированием
Старый 07.02.2009, 15:06   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

В этой теме же приведён пример выполнения Вашей задачи...

Там же приведены API-функции для работы с Clipboard:
Код:
Private Declare Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Integer) As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Integer) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Вам надо код для VB, или для VBA ?
EducatedFool вне форума Ответить с цитированием
Старый 07.02.2009, 15:25   #3
Nitro
 
Регистрация: 07.02.2009
Сообщений: 5
По умолчанию

Спасибо, но теперь как это все будет выглядеть конкретно для моего примера? Можно поподробнее? Ещё раз спасибо!!!
Nitro вне форума Ответить с цитированием
Старый 07.02.2009, 18:34   #4
Nitro
 
Регистрация: 07.02.2009
Сообщений: 5
По умолчанию

Все разобрался. Спасибо большое ещё раз!
Nitro вне форума Ответить с цитированием
Старый 07.02.2009, 20:45   #5
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Вот функция, которая сохраняет картинку из буфера в файл. Можно указать путь и имя файла, а если не указывать, то имя будет случайным, а сохранять в Temp. Я ее модифицировал по сравнению с той, что была раньше.
Код:
Public Function Clip2File(Optional Filename As String, Optional Path = "")
  
  Dim sFileName As String, sPath As String
  Dim strOutputPath As String, oPic As IPictureDisp
  'Путь к папке для сохранения файла
  'Если путь пустой, то копируем в «TEMP». Если нет, то в указанyю папку
  sPath = IIf(Path = "", Environ("TEMP"), Path)
  'Если имя файла не указано, то генерируем случайное имя
  If Filename = "" Then
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    sFileName = FSO.GetTempName(): sFileName = Mid(sFileName, 1, InStrRev(sFileName, ".") - 1)
  Else: sFileName = Filename: End If
  'Get the filename to save the bitmap to
  strOutputPath = sPath & "\" & sFileName & ".bmp"
  
  'Retrieve the picture from the clipboard...
  Set oPic = GetClipPicture()
  
  '... and save it to the file
  If Not oPic Is Nothing Then
    SavePicture oPic, strOutputPath
    Clip2File = strOutputPath
  Else
    Clip2File = ""
    MsgBox "Unable to retrieve bitmap from clipboard"
  End If
End Function
А с буфером можно по-тихоньку работать и в VBA. Читай справку по объекту DataObject
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 07.02.2009 в 20:50.
viter.alex вне форума Ответить с цитированием
Старый 24.05.2012, 21:05   #6
Lugovaya
 
Регистрация: 21.05.2012
Сообщений: 4
По умолчанию

Помогите, пожалуйста. Программка наподобие этой. Нужно с листа Excel скопировать картинку и положить ее в папку с рабочим файлом.
1) Как определить картинку на листе?
2) Какой у нее должен быть тип чтобы срабатывала функция SavePicture
Lugovaya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для сохранения листов в отдельных файлах Neo007 Microsoft Office Excel 2 22.10.2008 18:16
Нужно написать макрос для Word. Hoomer Фриланс 2 24.09.2008 12:19
Макрос сохранения после печати lala_white Microsoft Office Word 2 10.08.2008 12:50
Отключить загрузку всех картинок в WebBrowser SHEI'TI Общие вопросы Delphi 6 31.01.2008 13:23