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

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

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

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

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

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

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

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

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

заранее спасибо всем, кто откликнется!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.01.2012, 18:28
Ответы с готовыми решениями:

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

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

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

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

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

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

как-то так
это реально?
Вложения
Тип файла: zip для макроса.zip (28.0 Кб, 300 просмотров)
0
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
19.01.2012, 21:12
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  [ТС]
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
Visual Basic
1
objPowerPoint.Quit
0
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 4
21.01.2012, 15:16  [ТС]
спасибо за помощь, почти работает

только почему-то, чтобы 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
Kate_C,
не знаю, почему так. Так вы код и так должны запускать из Excel, а не из VBA.
Может надо проводить проверку, запущен PowerPoint или нет. Когда PowerPoint закроется, то выводить сообщение, что всё готово.
Только это усложнит код.
0
14 / 14 / 1
Регистрация: 22.04.2011
Сообщений: 70
25.04.2012, 15:28
Цитата Сообщение от Kate_C Посмотреть сообщение
в чем тут ошибка?
может кому пригодиться, надо добавить нотинги

Visual Basic
1
2
3
4
5
objTemplate.Save
objTemplate.Close
Set objTemplate= Nothing
objPowerPoint.Quit
Set objPowerPoint= Nothing
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.04.2012, 15:28
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru