Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - PowerPoint автоматическое создание слайдов

Ответить
Настройки темы
VBA - PowerPoint автоматическое создание слайдов

Аватара для morebeauty

Старожил


Сообщения: 210
Благодарности: 29

Профиль | Отправить PM | Цитировать


На телевизоре крутятся презентации и видео. В том числе есть презентация с днями рождения сотрудников на неделю. Если честно это очень надоедает. Хотелось бы, чтобы запускался первый титульный слайд, а он бы уже формировал все последующие в зависимости от даты и вставлял нужную фото из папки. Даже не знаю с какой стороны к этому подойти. Ну, точнее понимаю что нужно через VBA, но все, что я могу сделать на VB - это написать какую-либо функцию или процедуру без взаимодействия с элементами презентации

Отправлено: 08:08, 05-05-2014

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4465
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


morebeauty, Начало работы с языком VBA в ПО PowerPoint 2010 (машинный перевод) В меру подробно, с примерами.
Я считаю -- то, что надо.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:59, 05-05-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для morebeauty

Старожил


Сообщения: 210
Благодарности: 29

Профиль | Отправить PM | Цитировать


lxa85, спасибо, почитаю, как будет время, но все же я хотел немного иного ответа. Задача разовая. Понадобится ли когда-нибудь в дальнейшем использовать ВБА в поверпоинте - неизвестно. Посему хотелось бы конкретики. Ну, задачу ведь я обрисовал, хотелось бы список того, что мне понадобится и ссылки на хелп именно по этому списку, а не "программирование от А до Я"

Отправлено: 10:55, 05-05-2014 | #3


Аватара для lxa85

Необычный


Contributor


Сообщения: 4465
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


morebeauty, хе.
Давай тогда начнем с того, что "обрисованная задача" имеет достаточно расплывчатое представление.
Как я понял, формировать титульный слайд, как первооснову, руками -- это кака и бе-бе-бе.
Ладно, допустим сотрудник взял на себя труд и его сформировал. Тогда циклом выдираем ФИО, и через некий разделитель (допустим запятую) вытаскиваем дату.
Из этого формируем новый слайд. Как автоматически привязать к слайду картинку -- не знаю.

Другое дело, если будет некая база (хоть текстовый файл), в котором будет указано, где ФИО, где дата рождения, (от сих на будущее можно посчитать юбилеи), и картинка фона + портрет (+ вариант шаблона оформления).

Ну и из практики -- все равно придется проверять "руками". Т.к. у людей бывают очень длинные имена, фамилии и отчества. Т.е. надо будет проследить, чтобы слайд не рассыпался и(или) было применено правильно растяжение по шрифту.

PP и VBA у меня под руками нет, поэтому пока только теория.
Т.е. хотелось бы знать, с какими именно объектами придется работать. Т.к. список сотрудников может быть выражен как текстовым полем, так и таблицей.

--
Понадобятся:
Работа с файлами (загрузка картинок), работа с объектом типа рисунок. (тыц)
Объект типа текстовое поле. (Координаты, символы форматирования, характеристики текста (растяжение по ширине, выравнивание по левому / правому краю / по центру)), (тыц, тыц)
Работа с фоном.(тыц)
Работа с объектом типа заголовок. (тыц)
Создание нового слайда.(тыц)
Общая справка: Все объекты и работа с каждым

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:25, 05-05-2014 | #4


Аватара для morebeauty

Старожил


Сообщения: 210
Благодарности: 29

Профиль | Отправить PM | Цитировать


lxa85, почти все что нужно.

Цитата lxa85:
Как я понял, формировать титульный слайд, как первооснову, руками -- это кака и бе-бе-бе. »
Как раз таки нет. Сформировать один шаблон слайда можно и ручками. Только для удобства нужно предусмотреть именно работу с шаблонами, потому что каждый месяц шаблон будет разный. То есть всего 12 шаблонов, которые в зависимости от месяца нужно подставлять к слайду.

Но кроме этого должен быть еще заголовочный слайд, типа "на этой неделе у следующих людей дни рождения".
И вот пока он висит, должны формироваться следующие несколько слайдов по количеству именинников на этой неделе. Про обработку событий я ничего не нашел, походу все макросы нужно запускать вручную
Так как ресурсами комп, который это вещает, не богат, формировать каждый раз слайды не хотелось бы. То есть первый раз формируются и презентация сохраняется, потом только проверяется на соответствие дате. Если неделя новая, то все слайды (кроме первого, на котором меняется дата и стишок ), удаляются и формируются новые. Короче как то так.

И самое главное, презентация сохранена в формате "демонстрация", то есть при запуске открывается не конструктор, а сразу начинается показ слайдов.

Отправлено: 12:04, 05-05-2014 | #5


Аватара для lxa85

Необычный


Contributor


Сообщения: 4465
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Сотрудник приходит, формирует первый слайд в конструкторе, запускает макрос, получает остальные n'цать штук, проверяет, сохраняет как "демонстрацию" и отправляет на показ мультиков. Не вижу криминала.
Слайды формируются в рабочем черновике. Никаких генераций "на лету" во время просмотра. Забыть как страшный сон.
Навешивать обработчики событий ... да нет, бред. Это же презентация, а не флеш игра с интерактивным взаимодействием и ветвлением событий.
Цитата morebeauty:
И самое главное, презентация сохранена в формате "демонстрация", то есть при запуске открывается не конструктор, а сразу начинается показ слайдов. »
Само собой.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 14:15, 05-05-2014 | #6


Аватара для morebeauty

Старожил


Сообщения: 210
Благодарности: 29

Профиль | Отправить PM | Цитировать


Тогда я усложню задачу. Есть презентация с набором шаблонов и одной лишь пользовательской формой, в которой я устанавливаю опции, типа выбора эффектов, временные настройки и другие. Еще в него вшиты 12 шаблонов оформления (на каждый месяц). Далее по нажатию кнопочки должна создаться презентация на основе всего выбранного. То есть к уже предложенным инструкциям еще нужны:

создание новой презентации;
перенос настроек (шаблонов, коллекций и хз чего еще) в новую презентацию из имеющейся.

Само собой, если это возможно.

И еще. Файл с именами сотрудников и датами рождения в формате excel. Можно ли оттуда сдернуть данные? Или лучше сохранить в тексте?

Отправлено: 04:57, 06-05-2014 | #7


Аватара для lxa85

Необычный


Contributor


Сообщения: 4465
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


morebeauty, не наглей!
Применение шаблонов: тыц
Работа с Excel: как сделать ...
Пример работы с ячейками тыц

Коллекции и "хз чего еще" требует уточнения.
----
Цитата morebeauty:
Есть презентация с набором шаблонов и одной лишь пользовательской формой, в которой я устанавливаю опции, типа выбора эффектов, временные настройки и другие. Еще в него вшиты 12 шаблонов оформления (на каждый месяц). Далее по нажатию кнопочки должна создаться презентация на основе всего выбранного. »
Что, совсем на работе скучно?
Лучшее враг хорошего, не рой себе яму. Проще -- лучше. Лежат тихо мирно 12 файлов с презентациями по месяцам и пусть лежат. Кто захотел -- поправил.
Не, сделать то можно, почувствовать за себя гордость, мол "во как могу!", боком вылезет, помяни мое слово!

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 08:59, 06-05-2014 | #8


Аватара для morebeauty

Старожил


Сообщения: 210
Благодарности: 29

Профиль | Отправить PM | Цитировать


Цитата lxa85:
не наглей! »
Не наглею. Гуглить умею, вот только так и не смог найти ответ на интересующий вопрос про будущие подводные камни.

Открываю документ так
Код: Выделить весь код
    Dim exlApp As Object, exlDoc As Object
    Set exlApp = CreateObject("Excel.Application")
    Set exlDoc = exlApp.Workbooks.Open("C:\Users\...\workers.xlsx")
И вот тут мне не понятны следующие вещи:
зачем мне нужен объект exlDoc, если к ячейкам я обращаюсь через exlApp? А что, если exlApp рано или поздно обратится к другому открытому документу на компе? Ведь exlApp.Cells(x,y) обращается к ячейке в exlApp.ActiveWorkbook. А значит я могу открыть документ на компе в момент работы макроса и он станет активным. Или это невозможно? Почему? В общем этот момент мне не понятен, поэтому я боюсь что он рано или поздно меня подведет.

Цитата lxa85:
Что, совсем на работе скучно? »
Я очень ленивый, я могу месяц работать над автоматизацией своей повседневной работы, чтобы потом целый год сидеть и ничего не делать. Вот и сейчас, хотел посмотреть фильм, а тут снова нужно делать эту презентацию

Цитата lxa85:
Лучшее враг хорошего, не рой себе яму. Проще -- лучше. Лежат тихо мирно 12 файлов с презентациями по месяцам и пусть лежат. Кто захотел -- поправил.
Не, сделать то можно, почувствовать за себя гордость, мол "во как могу!", боком вылезет, помяни мое слово! »
Никто за меня это не подправит, если вся работа не будет выполняться нажатием одной единственной кнопки "Выполнить всю работу за меня". Если сумею этого добиться, скину дни рождения на секретаршу. Ну да, по началу будет дергать меня с места из-за глюков в коде, но со временем все устаканится

Отправлено: 09:45, 06-05-2014 | #9


Аватара для lxa85

Необычный


Contributor


Сообщения: 4465
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


morebeauty, я не силен в VBA, но где то ошибка в логике.
Ты открываешь документ (open), читаешь из него необходимые данные, и закрываешь его. Всё. Работа с Excel закончилась.
ActiveWorkbook будет рассматриваться в том случае, если макрос выполняется из экселя.
Т.е. одно дело мы вытаскиваем из xlsx данные о сотрудниках извне, например из PowerPoint.
Другое дело, когда у нас открыт Excel и нам надо выполнить макрос на текущей странице.

По идее так. По практике подсказать не смогу, я под linux сижу. Тянуться до VBA далеко.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 12:32, 06-05-2014 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - PowerPoint автоматическое создание слайдов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Службы - Автоматическое создание точек восстановления stvol Microsoft Windows 7 17 16-01-2014 21:11
2010 - Создание горячих клавиш в PowerPoint Memfis09 Microsoft Office (Word, Excel, Outlook и т.д.) 1 27-03-2013 08:56
Разное - Автоматическое создание vpn подключения steepz Microsoft Windows 2000/XP 3 13-03-2011 01:25
Автоматическое создание учетной записи gpa_76 Автоматическая установка Windows 2000/XP/2003 0 06-07-2009 13:53
Outlook Express: автоматическое создание учеток storm2005 Microsoft Windows NT/2000/2003 0 13-10-2006 11:33




 
Переход