С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/82: Рейтинг темы: голосов - 82, средняя оценка - 4.51
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 4
1

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

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

Author24 — интернет-сервис помощи студентам
доброго времени суток!

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

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

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

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

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

заранее спасибо всем, кто откликнется!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2012, 18:28
Ответы с готовыми решениями:

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

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

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

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

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

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

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

как-то так
это реально?
Вложения
Тип файла: zip для макроса.zip (28.0 Кб, 298 просмотров)
0
1301 / 403 / 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
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
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
20.01.2012, 21:28 6
Visual Basic
1
objPowerPoint.Quit
0
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
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
21.01.2012, 16:27 8
Kate_C,
не знаю, почему так. Так вы код и так должны запускать из Excel, а не из VBA.
Может надо проводить проверку, запущен PowerPoint или нет. Когда PowerPoint закроется, то выводить сообщение, что всё готово.
Только это усложнит код.
0
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2012, 15:28
Помогаю со студенческими работами здесь

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

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
Copyright ©2000 - 2024, CyberForum.ru