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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2011, 20:16   #1
Gepar
 
Регистрация: 20.12.2011
Сообщений: 7
По умолчанию Картинку из Word в PowerPoint

Нужно перетащить картинки из документа word в PowerPoint, например по 1 картинке на лист презентации. Как это сделать ?
Конкретно мне не понятно как перетащить найденную картинку в word в powerpoint:
Код:
Sub test1234()
 
    Dim PPAppl As Object
    Dim m As Variant
    
    'создать новый объект
    Set PPAppl = CreateObject("PowerPoint.Application")
    
    'выбрать тип новых создаваемых листов в PowerPoint
    Dim Layout As Integer
    Layout = 2
    
    
    With PPAppl
        .Visible = True 'показать PowerPoint
        .Presentations.Add 'создать в PowerPoint презентацию
        
    'пройтись по всех картинках
    For i = 1 To ActiveDocument.InlineShapes.Count
        .ActivePresentation.Slides.Add i, Layout 'добавить новый лист
        ActiveDocument.InlineShapes(i).Select 'выбрать i-ую картинку
        'здесь надо бы как-то поместить картинку на слайд
    Next i
    End With
End Sub
Заранее спасибо.
Gepar вне форума Ответить с цитированием
Старый 20.12.2011, 21:32   #2
Пименов Александр
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 222
Радость

Код:
Sub test1234()
 
    Dim PPAppl As PowerPoint.Application
    Dim Sld As Slide, Pres As Presentation
    
    Set PPAppl = New PowerPoint.Application
    With PPAppl
        .Visible = True 
        Set Pres = .Presentations.Add
        
    For i = 1 To ActiveDocument.InlineShapes.Count
        Set Layout = Pres.SlideMaster.CustomLayouts(2)
        Set Sld = Pres.Slides.AddSlide(i, Layout)
        ActiveDocument.InlineShapes(i).Select
        Selection.Copy
        Sld.Shapes.Paste
    Next i
    End With
End Sub
Вроде фурычит.........
Пименов Александр вне форума Ответить с цитированием
Старый 21.12.2011, 04:19   #3
Gepar
 
Регистрация: 20.12.2011
Сообщений: 7
По умолчанию

Пименов Александр, ну я вот тоже к таким выводам в итоге пришёл, хотя не знаю понравиться ли такая реализация преподавателю, в четверг ему покажу.
Gepar вне форума Ответить с цитированием
Старый 21.12.2011, 10:11   #4
Пименов Александр
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 222
Радость

Цитата:
Сообщение от Gepar Посмотреть сообщение
ну я вот тоже к таким выводам в итоге пришёл, хотя не знаю понравиться ли такая реализация преподавателю, в четверг ему покажу.
Рад, что мы сошлись во мнении, но макрос этот надо улучшать однозначно. Данный макрос это рыба.
Во-первых надо написать функцию для объекта InlineShape определяющую, что он является картинкой.
Во-вторых картинкой может быть и объект Shape, для этого также надо пройти циклом по ActiveDocument.Shapes, тут тоже нужна функция для определения картинки, также Shape может быть фигурой или группой фигур составляющих картинку.
В-третьих объект Chart (диаграмма) ее тоже можно экспортировать.
Итог:
Надо создавать Диалоговую форму дающую возможность пользователю выбирать параметры экспорта
Пименов Александр вне форума Ответить с цитированием
Старый 21.12.2011, 17:32   #5
Gepar
 
Регистрация: 20.12.2011
Сообщений: 7
По умолчанию

Пименов Александр, ну насчёт того что форму надо делать и дописывать то это само собой, это я уже почти сделал, теперь вот воюю с диалоговыми окнами "открыть файл" и "сохранить файл" (хочу получать из них строки с путями и названиями файлов которые там выбрал пользователь), а вот насчёт того что нужно определять для InlineShape что это картинка то тут не понял, я не знаю как это сделать не подскажите?
Gepar вне форума Ответить с цитированием
Старый 21.12.2011, 19:01   #6
Пименов Александр
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 222
По умолчанию

Код:
Sub test1234()
 
    Dim PPAppl As PowerPoint.Application
    Dim Sld As Slide, Pres As Presentation
    
    Set PPAppl = New PowerPoint.Application
    With PPAppl
        .Visible = True 
        Set Pres = .Presentations.Add
        
    For i = 1 To ActiveDocument.InlineShapes.Count
        Select Case InlineShapes(i).Type ' Вставка в PowerPoint если InlineShapes рисунок
            Case 3, 4, 7, 8, 9
                Set Layout = Pres.SlideMaster.CustomLayouts(2)
                Set Sld = Pres.Slides.AddSlide(i, Layout)
                ActiveDocument.InlineShapes(i).Select
                Selection.Copy
                Sld.Shapes.Paste
        End Select
    Next i
    End With
End Sub
Вот модернизированный макрос с проверкой InlineShape
Пименов Александр вне форума Ответить с цитированием
Старый 21.12.2011, 19:21   #7
Gepar
 
Регистрация: 20.12.2011
Сообщений: 7
По умолчанию

Пименов Александр, вот спасибо, а я и не заметил как-то поле Type когда перебирал все свойства и методы для InlineShapes. Теперь какраз и определил что для формул InlineShapes.Type =1, спасибо за подсказку.
Gepar вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Word 2010 не могу на одной странице напечатать формулу и картинку. bdfy Microsoft Office Word 7 26.10.2010 06:24
Как получить картинку при наведении на другую картинку (ссылку) seeker1 JavaScript, Ajax 8 04.07.2010 19:42
PowerPoint женя2010 Microsoft Office Excel 0 21.06.2010 17:57
из Delphi Записать строку в Word полсе чего вставить туда картинку. Maddy Помощь студентам 4 29.01.2010 15:00
Excel: Вставить картинку или Word документ Mort222 Microsoft Office Excel 6 19.02.2009 12:47