Предварительные условия для фрагментов кода ниже:
- Форма c с именем "Shape"
- Форма c с именем "Trigger"
- Форма аудио объекта с именем "Audio"
- Все вышеперечисленное находится на слайде 1
Когда я запускаю код, чтобы добавить анимационный эффект для фигуры, основанной на другой фигуре триггера, являющейся по щелчку, он работает правильно:
Dim sld as Slide
Set sld = ActivePresentation.Slides(1)
With sld.TimeLine.InteractiveSequences.Add
With .AddEffect(sld.Shapes("Shape"), msoAnimEffectAppear, , msoAnimTriggerOnShapeClick)
.Timing.TriggerShape = sld.Shapes("Trigger")
End With
End With
Результат: добавлена анимация появления с триггером формы «Триггер»
Однако, если я попробую там же, где фигура является аудиообъектом с эффектом анимации воспроизведения / паузы / остановки, я получаю ошибку:
Dim sld as Slide
Set sld = ActivePresentation.Slides(1)
With sld.TimeLine.InteractiveSequences.Add
With .AddEffect(sld.Shapes("Audio"), msoAnimEffectMediaPlay, , msoAnimTriggerOnShapeClick)
.Timing.TriggerShape = sld.Shapes("Trigger")
End With
End With
Outcome : ошибка во время выполнения (ниже). Добавлена анимация воспроизведения, но триггером является сама фигура «Аудио» (которая является поведением по умолчанию), а не фигура «Триггер».
Ошибка времени выполнения -2147188160 (80048240) ': Время (неизвестный член): неверный запрос.
Кажется, что вы не можете получить или установить TriggerShape
(или Timing
объект) с помощью VBA.
Я могу изменить форму триггера вручную через раскрывающийся список пользовательского интерфейса, как обычно, но попытка получить к нему доступ через VBA просто возвращает ошибку.
Если я добавлю аудио анимацию после обычной формы в последовательности нет необходимости указывать TriggerShape
снова, и анимация правильно добавляется при том же триггере, что является обходным решением.
Но кажется, что добавление аудиоформата в качестве первой анимации в последовательности с формой триггера невозможно, если я что-то не так делаю?
Использование PowerPoint для Ma c Версия 16.35 (20030802)