|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - PowerPoint автоматическое создание слайдов |
|
|
VBA - PowerPoint автоматическое создание слайдов
|
![]() Старожил Сообщения: 210 |
На телевизоре крутятся презентации и видео. В том числе есть презентация с днями рождения сотрудников на неделю. Если честно это очень надоедает. Хотелось бы, чтобы запускался первый титульный слайд, а он бы уже формировал все последующие в зависимости от даты и вставлял нужную фото из папки. Даже не знаю с какой стороны к этому подойти. Ну, точнее понимаю что нужно через VBA, но все, что я могу сделать на VB - это написать какую-либо функцию или процедуру без взаимодействия с элементами презентации
|
|
Отправлено: 08:08, 05-05-2014 |
Необычный Сообщения: 4465
|
Профиль | Сайт | Отправить PM | Цитировать morebeauty, Начало работы с языком VBA в ПО PowerPoint 2010 (машинный перевод) В меру подробно, с примерами.
Я считаю -- то, что надо. |
------- Отправлено: 09:59, 05-05-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Старожил Сообщения: 210
|
Профиль | Отправить PM | Цитировать lxa85, спасибо, почитаю, как будет время, но все же я хотел немного иного ответа. Задача разовая. Понадобится ли когда-нибудь в дальнейшем использовать ВБА в поверпоинте - неизвестно. Посему хотелось бы конкретики. Ну, задачу ведь я обрисовал, хотелось бы список того, что мне понадобится и ссылки на хелп именно по этому списку, а не "программирование от А до Я"
![]() |
Отправлено: 10:55, 05-05-2014 | #3 |
Необычный Сообщения: 4465
|
Профиль | Сайт | Отправить PM | Цитировать morebeauty, хе.
![]() Давай тогда начнем с того, что "обрисованная задача" имеет достаточно расплывчатое представление. Как я понял, формировать титульный слайд, как первооснову, руками -- это кака и бе-бе-бе. Ладно, допустим сотрудник взял на себя труд и его сформировал. Тогда циклом выдираем ФИО, и через некий разделитель (допустим запятую) вытаскиваем дату. Из этого формируем новый слайд. Как автоматически привязать к слайду картинку -- не знаю. Другое дело, если будет некая база (хоть текстовый файл), в котором будет указано, где ФИО, где дата рождения, (от сих на будущее можно посчитать юбилеи), и картинка фона + портрет (+ вариант шаблона оформления). Ну и из практики -- все равно придется проверять "руками". Т.к. у людей бывают очень длинные имена, фамилии и отчества. Т.е. надо будет проследить, чтобы слайд не рассыпался и(или) было применено правильно растяжение по шрифту. PP и VBA у меня под руками нет, поэтому пока только теория. Т.е. хотелось бы знать, с какими именно объектами придется работать. Т.к. список сотрудников может быть выражен как текстовым полем, так и таблицей. -- Понадобятся: Работа с файлами (загрузка картинок), работа с объектом типа рисунок. (тыц) Объект типа текстовое поле. (Координаты, символы форматирования, характеристики текста (растяжение по ширине, выравнивание по левому / правому краю / по центру)), (тыц, тыц) Работа с фоном.(тыц) Работа с объектом типа заголовок. (тыц) Создание нового слайда.(тыц) Общая справка: Все объекты и работа с каждым |
------- Отправлено: 11:25, 05-05-2014 | #4 |
![]() Старожил Сообщения: 210
|
Профиль | Отправить PM | Цитировать lxa85, почти все что нужно.
![]() Цитата lxa85:
Но кроме этого должен быть еще заголовочный слайд, типа "на этой неделе у следующих людей дни рождения". И вот пока он висит, должны формироваться следующие несколько слайдов по количеству именинников на этой неделе. Про обработку событий я ничего не нашел, походу все макросы нужно запускать вручную ![]() Так как ресурсами комп, который это вещает, не богат, формировать каждый раз слайды не хотелось бы. То есть первый раз формируются и презентация сохраняется, потом только проверяется на соответствие дате. Если неделя новая, то все слайды (кроме первого, на котором меняется дата и стишок ![]() И самое главное, презентация сохранена в формате "демонстрация", то есть при запуске открывается не конструктор, а сразу начинается показ слайдов. |
||
Отправлено: 12:04, 05-05-2014 | #5 |
Необычный Сообщения: 4465
|
Профиль | Сайт | Отправить PM | Цитировать Сотрудник приходит, формирует первый слайд в конструкторе, запускает макрос, получает остальные n'цать штук, проверяет, сохраняет как "демонстрацию" и отправляет на показ мультиков. Не вижу криминала.
Слайды формируются в рабочем черновике. Никаких генераций "на лету" во время просмотра. Забыть как страшный сон. Навешивать обработчики событий ... да нет, бред. Это же презентация, а не флеш игра с интерактивным взаимодействием и ветвлением событий. Цитата morebeauty:
![]() |
|
------- Отправлено: 14:15, 05-05-2014 | #6 |
![]() Старожил Сообщения: 210
|
Профиль | Отправить PM | Цитировать Тогда я усложню задачу. Есть презентация с набором шаблонов и одной лишь пользовательской формой, в которой я устанавливаю опции, типа выбора эффектов, временные настройки и другие. Еще в него вшиты 12 шаблонов оформления (на каждый месяц). Далее по нажатию кнопочки должна создаться презентация на основе всего выбранного. То есть к уже предложенным инструкциям еще нужны:
создание новой презентации; перенос настроек (шаблонов, коллекций и хз чего еще) в новую презентацию из имеющейся. Само собой, если это возможно. И еще. Файл с именами сотрудников и датами рождения в формате excel. Можно ли оттуда сдернуть данные? Или лучше сохранить в тексте? |
Отправлено: 04:57, 06-05-2014 | #7 |
Необычный Сообщения: 4465
|
Профиль | Сайт | Отправить PM | Цитировать morebeauty, не наглей!
![]() Применение шаблонов: тыц Работа с Excel: как сделать ... Пример работы с ячейками тыц Коллекции и "хз чего еще" требует уточнения. ---- Цитата morebeauty:
![]() Лучшее враг хорошего, не рой себе яму. Проще -- лучше. Лежат тихо мирно 12 файлов с презентациями по месяцам и пусть лежат. Кто захотел -- поправил. Не, сделать то можно, почувствовать за себя гордость, мол "во как могу!", боком вылезет, помяни мое слово! |
|
------- Отправлено: 08:59, 06-05-2014 | #8 |
![]() Старожил Сообщения: 210
|
Профиль | Отправить 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:
![]() |
|||
Отправлено: 09:45, 06-05-2014 | #9 |
Необычный Сообщения: 4465
|
Профиль | Сайт | Отправить PM | Цитировать morebeauty, я не силен в VBA, но где то ошибка в логике.
Ты открываешь документ (open), читаешь из него необходимые данные, и закрываешь его. Всё. Работа с Excel закончилась. ActiveWorkbook будет рассматриваться в том случае, если макрос выполняется из экселя. Т.е. одно дело мы вытаскиваем из xlsx данные о сотрудниках извне, например из PowerPoint. Другое дело, когда у нас открыт Excel и нам надо выполнить макрос на текущей странице. По идее так. По практике подсказать не смогу, я под linux сижу. Тянуться до VBA далеко. |
------- Отправлено: 12:32, 06-05-2014 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Службы - Автоматическое создание точек восстановления | 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 |
|