Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/38: Рейтинг темы: голосов - 38, средняя оценка - 4.82
Kate_C
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 4
1

Необходимо в MS Excel написать макрос, который бы формировал презентацию в Power Point

19.01.2012, 18:28. Просмотров 7603. Ответов 8
Метки нет (Все метки)

доброго времени суток!

существует следующая задача:
необходимо в MS Excel написать макрос, который бы формировал презентацию в Power Point.

Исходные данные: таблица в Excel, содержащая перечень разделов, каждому разделу соответствует своя мини-презентация (от одного до нескольких слайдов).

Необходимо нажатием кнопки в Excel сформировать презентацию в Power Point.

Такое возможно?

П.С.: возможна реализация любым другим образом. основная цель - имея, набор мини-презентаций, иметь возможность оперативно формировать итоговые презентации разной комплектации

заранее спасибо всем, кто откликнется!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2012, 18:28
Ответы с готовыми решениями:

Устраните ошибку в коде, который перемещает диаграмму из Excel в Power Point
Вот код макроса, который должен перемещать диаграмму из экселя в павер_поинт. (запускается из...

VBA Power point и Excel
Подскажите как занести данные введенные в Power point на userform в excel по кнопке.

Data export from Excel To Power Point
Коллеги, друзья, товарищи! Возникла следующая делема. Есть ексель фаил с кучей (допустим 3)...

экспорт листов из excel в Power Point
Доброго времени суток! Появилась сверху амбициозная задача: дан лист excel, на на нем диапазон под...

VBA excel 2007 и Power point (Please help!)
Уважаемые форумчане, подскажите пожалуйста, в чем ошибка! Задача: при нажатии кнопки на листе...

8
Busine2012
1293 / 395 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
19.01.2012, 18:56 2
Kate_C,
выкладывайте файлы и поясняйте, что с ними надо сделать.
0
Kate_C
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 4
19.01.2012, 19:18  [ТС] 3
прикрепила архив к сообщению

есть Экселевский файлик с перечислением разделов презентации, среди которых есть обязательные ( отмечены "+" и те, которые по желанию пользователя, могут выть включены/исключены из презентации.
Каждому разделу, который указан в файлике, соответствует одноименная презентация, состоящая из одного или нескольких слайдов. И есть пустой файл Шаблон.

Алгоритм (громко сказано) примерно такой:
1. пользователь открывает Экселевский файл и отмечает те разделы, которые по его мнению необходимо включить в презентацию. Как вариант ставит "+"\"-" в предназначенном столбце ( или любым другим образов выделяет необходимое). Жмет кнопку "формирование презентации".
2. Макрос считывает заполненную таблицу, определяет названия презентаций, которые надо объединить в одну.
3. макрос копирует файл "ШАБЛОН.ppt" (пустой файл power point). И начинает по очереди копировать в него слайды из тех мини-презентаций, которые были отмечены в п.1.
4. вставлять презентации необходимо в том же порядке, в каком были перечислены пункты в Экселе.
5. презентация должна начинаться со слайдов из презентации "общая часть начало", и заканчиваться слайдами "общая часть конец".
6. получившаяся презентация сохраняется.

как-то так
это реально?
0
Вложения
Тип файла: zip для макроса.zip (28.0 Кб, 233 просмотров)
Busine2012
1293 / 395 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
19.01.2012, 21:12 4
Kate_C,
читайте комментарии в коде (они зелёным цветом):
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
Sub Процедура1()
    'Подключаем библиотеку классов программы PowerPoint
    '(чтобы можно было работать из Excel в PowerPoint):
    'Tools - References... - Microsoft PowerPoint Object Library.
    'Подключение этой библиотеки упрощает написание кода,
    'т.к. после того, как будем ставить точки в коде -
    'будут появляться всплывающие подсказки.
    Dim objPowerPoint As New PowerPoint.Application
    'Делаем программу PowerPoint видимой на мониторе.
    objPowerPoint.Visible = msoTrue
    Dim objTemplate As PowerPoint.Presentation
    'Здесь нужно указать, где находится шаблон презентации и его имя.
    Const strTemplatePath As String = "C:\Documents and Settings\Пользователь\Рабочий стол\для макроса\ШАБЛОН.ppt"
    'Здесь нужно указать, куда "сохраняется как" шаблон-презентация.
    Const strSaveAs As String = "C:\Documents and Settings\Пользователь\Рабочий стол\ШАБЛОН.ppt"
    'Здесь нужно указать папку, в которой находятся мини-презентации.
    Const strWorkFolder As String = "C:\Documents and Settings\Пользователь\Рабочий стол\для макроса\"
    Dim i As Long
    'Открываем шаблон-презентацию и говорим, что будем обращаться
    'к ней с помощью переменной objTemplate.
    'Использование переменной objTemplate даёт следующие преимущества:
    '1) кода меньше писать;
    '2) не промахнётесь - не станете случайно работать с другой презентацией.
    Set objTemplate = objPowerPoint.Presentations.Open(Filename:=strTemplatePath)
    '"Сохраняем как" шаблон-презентацию. Я сохраню на Рабочий стол.
    objTemplate.SaveAs Filename:=strSaveAs
    'Добавление в шаблон-презентацию мини-презентаций в соответствии с плюсиками в Excel.
    'Просматриваем строки со 2 по 6 (согласно вашему файлу).
    For i = 2 To 6 Step 1
        If Cells(i, "C").Value = "+" Then
            objTemplate.Slides.InsertFromFile _
                Filename:=strWorkFolder & Cells(i, "A").Value, Index:=objTemplate.Slides.Count
        End If
    Next i
    'Сообщение, что работа выполнена.
    MsgBox "Презентация сформирована!", vbInformation
End Sub
Когда код протестируете, и всё будет работать, то удалите из кода в #4 строки: 8, 11 (чтобы код работал на всех компьютерах) .
А добавьте вот эти строки в начало кода:
Visual Basic
1
2
3
Dim objPowerPoint As Object
Dim objTemplate As Object
Set objPowerPoint = CreateObject(Class:="PowerPoint.Application")
0
Kate_C
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 4
20.01.2012, 21:26  [ТС] 5
Busine2012, спасибо огромное!!!

а можно после формирования презентации сохранить результат и закрыть Power Point?

добавила перед строкой 35 из #4 следующее:

Visual Basic
1
2
    objTemplate.SaveAs Filename:=strSaveAs
    objTemplate.Close
при этом сформированная презентация сохраняется и закрывается, а вот Power Point - нет.
0
Busine2012
1293 / 395 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
20.01.2012, 21:28 6
Visual Basic
1
objPowerPoint.Quit
0
Kate_C
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 4
21.01.2012, 15:16  [ТС] 7
спасибо за помощь, почти работает

только почему-то, чтобы Power Point закрылся, необходимо вручную перейти в Excel, нажать "ОК" в информационном сообщении о выполнении формирования презентации, и только после этого Power Point закрывается.... а в коде последовательность действия другая: 1. презентация сохраняется; 2. Power Point закрываеся; 3. появляется информационное сообщение.

Visual Basic
1
2
3
4
5
6
objTemplate.SaveAs Filename:=strSaveAs
    objTemplate.Close
    objPowerPoint.Quit
     
    'Сообщение, что работа выполнена.
    MsgBox "Презентация сформирована!", vbInformation
в чем тут ошибка?
0
Busine2012
1293 / 395 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
21.01.2012, 16:27 8
Kate_C,
не знаю, почему так. Так вы код и так должны запускать из Excel, а не из VBA.
Может надо проводить проверку, запущен PowerPoint или нет. Когда PowerPoint закроется, то выводить сообщение, что всё готово.
Только это усложнит код.
0
vint2
14 / 14 / 1
Регистрация: 22.04.2011
Сообщений: 70
25.04.2012, 15:28 9
Цитата Сообщение от Kate_C Посмотреть сообщение
в чем тут ошибка?
может кому пригодиться, надо добавить нотинги

Visual Basic
1
2
3
4
5
objTemplate.Save
objTemplate.Close
Set objTemplate= Nothing
objPowerPoint.Quit
Set objPowerPoint= Nothing
0
25.04.2012, 15:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2012, 15:28

MS excel power point 2013 не открывает файлы
Здравствуйте. недавно установил ms office 2013, а именно : word,power point, excel(я только ими...

Перенос данных из Power Point в Excel с VBA
В Power Point есть слайд, на слайде размещён TextBox и в нём нужные мне данные. Нужно чтоб при...

Написать макрос для Word, который будет делать автосумму как в Excel
Здравствуйте, помогоите пожалуйста написать макрос для Word, который будет делать автосумму как в...


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

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

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