#export #powerpoint #mp4 #duration
#экспорт #powerpoint #МР4 #Продолжительность
Вопрос:
Я хочу экспортировать много презентаций PowerPoint в формат mpeg4. С помощью существующих функций в Powerpoint я могу установить продолжительность для каждого слайда или использовать расписание. Чтобы составить это расписание, я должен щелкнуть презентацию и записать свои клики или, в качестве альтернативы, установить время для каждого слайда и анимации, что требует много работы.
Могу ли я каким-либо образом создать скрипт, в котором я могу определить продолжительность щелчка мыши? Я хочу, чтобы слайд без анимации отображался в течение 3 секунд, а слайд, например, с двумя анимациями, отображался в течение 9 секунд (слайд анимация1 анимация2).
Я не хочу указывать длительность отображения, а вид продолжительности нажатия…
Кто-нибудь имеет представление о том, возможно ли что-то подобное?
Ответ №1:
Вот скрипт VBA для установки параметра «Опережение по времени» для каждого слайда в зависимости от количества анимаций, присутствующих на слайде.
For Each sld In ActivePresentation.Slides
animationCount = sld.TimeLine.MainSequence.Count
sld.SlideShowTransition.AdvanceOnTime = msoTrue
sld.SlideShowTransition.AdvanceTime = animationCount * 3 3
Next
ActivePresentation.CreateVideo "C:SomePathFilename.mp4", True
В этом примере, если на слайде есть анимации, с помощью этой строки мы устанавливаем время, равное 3-кратному количеству анимаций плюс 3, как в вашем примере. Если у нас есть слайд с 2 анимациями, длительность «Заранее по времени» будет установлена на 2*3 3 =9 секунд. Измените это в зависимости от ваших потребностей.
sld.SlideShowTransition.AdvanceTime = animationCount * 3 3
Последняя строка позволяет экспортировать в видео с таймингами.
Вот еще один пример, в котором вы можете указать параметр «Без анимации», чтобы не устанавливать опережение по времени, но при желании указать длительность по умолчанию:
For Each sld In ActivePresentation.Slides
animationCount = sld.TimeLine.MainSequence.Count
If animationCount >= 1 Then
sld.SlideShowTransition.AdvanceOnTime = msoTrue
sld.SlideShowTransition.AdvanceTime = animationCount * 3 3
Else
sld.SlideShowTransition.AdvanceOnTime = msoFalse
End If
Next
ActivePresentation.CreateVideo "C:SomePathFilename.mp4", True, 3
(если вы не знакомы с VBA, мы можем найти некоторую документацию и учебные пособия)
Комментарии:
1. Работает как шарм. К сожалению, есть некоторые защищенные презентации, в которых мне не разрешено создавать макросы. Тем не менее, это мне очень помогает. Большое вам спасибо!
2. Если вы сохраните это в презентации с поддержкой макросов, вы сможете выполнить его на всех открытых других презентациях с помощью
Presentations
collection,For Each pres In Presentations
что позволит вам получить доступ к другим презентациям, тогда вы, возможно, сможете изменить их, если они не доступны только для чтения. Просто еще один совет, который может вам помочь 🙂