Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/49: Рейтинг темы: голосов - 49, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 11.03.2013
Сообщений: 22
1

Создание презентации PowerPoint из Excel

27.03.2013, 16:00. Просмотров 9798. Ответов 2
Метки нет (Все метки)

Здравствуйте,
решив предыдущую задачу(отдельное спасибо форумчанину Скрипт)
Поставил перед собой более амбициозную(по крайней мере для себя) задачу.
Сейчас есть книга Excel с примерно 6 листами(на 5 листах присутствуют определенные диаграммы)
В итоге задачи хочу получить макрос который будет:
Из открытой книги Excel, открывать определенный файл PowerPoint(готовый шаблон для презентации)
Каждую диаграмму необходимо скопировать на определенный слайд презентации(всего около 3 слайдов)
И в конце необходимо сохранить презентацию в определенном месте на компе.

Из успехов:
Пока что научился только открывать нужную мне презентацию.
А вот копировать определенную диаграмму в определенный слайд и с определенным размером и местоположением, пока что нет никаких идей.

Постараюсь в ближайшее время выложить файлик с примером)
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2013, 16:00
Ответы с готовыми решениями:

Формирование презентации из Excel в PowerPoint
Доброго времени суток друзья, Очень прошу, кто может, помочь в написании макроса. Задача такая: ...

Заполнение презентации PowerPoint данными из Excel
Доброго времени суток, уважаемые! Хочется автоматизировать заполнение регулярной презентации для...

Создание презентации из графических файлов
Всем привет! Есть файлы jpg по 10 шт в папке, нужно создать презентацию из этих файлов, так что бы...

Получать данные со слайдов презентации power point в таблицу excel
Добрый день специалисты VBA. Тут такая задача HELP --Есть презентация в Powerpoint с множеством...

2
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 11
28.03.2013, 02:05 2
А на пошаговый туториал сего наиполезнейшего занятия опубликовать можно?
0
1 / 1 / 0
Регистрация: 11.03.2013
Сообщений: 22
28.03.2013, 10:11  [ТС] 3
Код для открытия презентации
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
Dim objPPT As Object
Set objPPT = CreateObject("PowerPoint.Application")
objPPT.Visible = True
 
'Здесь соответственно нужно указать вашу путь
'к файлу с шаблоном для презентации
 
objPPT.Presentations.Open "C:\test.ppt"


Добавлено через 33 минуты
Вот есть код, но он делает не совсем то что мне нужно.
1. Для работы необходимо все диаграммы собрать на одном листе экселя(это в принципе не проблема)
2. Кодик в презентации создает новый слайд под каждую диаграмму, что как раз таки сильно не подходит, т.к. нужно несколько диаграмм на 1 слайде+хочется определить размер и положение на самом слайде.

Но может кому то пригодится
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Sub CreatePowerPoint()
 
 'Add a reference to the Microsoft PowerPoint Library by:
    '1. Go to Tools in the VBA menu
    '2. Click on Reference
    '3. Scroll down to Microsoft PowerPoint X.0 Object Library, check the box, and press Okay
 
    'First we declare the variables we will be using
        Dim newPowerPoint As PowerPoint.Application
        Dim activeSlide As PowerPoint.Slide
        Dim cht As Excel.ChartObject
     
     'Look for existing instance
        On Error Resume Next
        Set newPowerPoint = GetObject(, "PowerPoint.Application")
        On Error GoTo 0
     
    'Let's create a new PowerPoint
        If newPowerPoint Is Nothing Then
            Set newPowerPoint = New PowerPoint.Application
        End If
    'Make a presentation in PowerPoint
        If newPowerPoint.Presentations.Count = 0 Then
            newPowerPoint.Presentations.Add
        End If
     
    'Show the PowerPoint
        newPowerPoint.Visible = True
    
    'Loop through each chart in the Excel worksheet and paste them into the PowerPoint
        For Each cht In ActiveSheet.ChartObjects
        
        'Add a new slide where we will paste the chart
            newPowerPoint.ActivePresentation.Slides.Add newPowerPoint.ActivePresentation.Slides.Count + 1, ppLayoutText
            newPowerPoint.ActiveWindow.View.GotoSlide newPowerPoint.ActivePresentation.Slides.Count
            Set activeSlide = newPowerPoint.ActivePresentation.Slides(newPowerPoint.ActivePresentation.Slides.Count)
                
        'Copy the chart and paste it into the PowerPoint as a Metafile Picture
            cht.Select
            ActiveChart.ChartArea.Copy
            activeSlide.Shapes.PasteSpecial(DataType:=ppPasteMetafilePicture).Select
    
        'Set the title of the slide the same as the title of the chart
            activeSlide.Shapes(1).TextFrame.TextRange.Text = cht.Chart.ChartTitle.Text
            
        'Adjust the positioning of the Chart on Powerpoint Slide
            newPowerPoint.ActiveWindow.Selection.ShapeRange.Left = 15
            newPowerPoint.ActiveWindow.Selection.ShapeRange.Top = 125
        
            activeSlide.Shapes(2).Width = 200
            activeSlide.Shapes(2).Left = 505
            
        Next
     
    AppActivate ("Microsoft PowerPoint")
    Set activeSlide = Nothing
    Set newPowerPoint = Nothing
     
End Sub
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2013, 10:11

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Экспорт данных из Excel в PowerPoint
ребят, помогите решить проблему мне нужно скопировать даныые секции и вставить в презентацию PP ...

Копирование чартов из Excel в PowerPoint
Всем привет, столкнулся с такой проблемой. У меня есть файл с макросом, в котором происходит...

Перенести диаграмму из Excel в PowerPoint
Private Sub export_to_pp() Set pr = CreateObject("PowerPoint.Application") Set mpr =...

Вставка данных из Excel в PowerPoint
Всем доброго дня! Помогите с решением такой проблемы: workB.Sheets(1).Range("B2:F8").Copy...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.