PowerPoint 2013: как программно встраивать связанные видео с помощью VBA?

371
p.m

У меня много презентаций PowerPoint со связанными видео (хранятся в отдельных файлах .wmv или .avi, которые расположены по тому же пути, что и сама презентация).

Чтобы сделать презентацию «переносимой» (например, поделиться ею в MS SharePoint), мне нужно встроить видео, чтобы получить один отдельный файл для каждой презентации.

Я нашел процедуру, которая делает это, она описана в статье: Оптимизация медиа в вашей презентации для совместимости .

В общем, вы должны:

  • разорвать ссылки
  • оптимизировать для совместимости медиа
  • сохранить изменения.

Я хотел бы автоматизировать этот процесс и сделать это в VBA для всех открытых файлов презентаций PowerPoint, но я не смог найти в Интернете пример того, как это сделать с VBA.

Какие команды необходимы для:

  • разорвать все ссылки в презентации
  • оптимизировать совместимость медиа?
1

1 ответ на вопрос

2
D-Software

Try the follow code which resample every linked media in the open presentations.

Sub Embed() Dim l As Slide Dim s As Shape Dim oDoc As Presentation On Error Resume Next For Each oDoc In Application.Presentations For Each l In oDoc.Slides For Each s In l.Shapes With s.MediaFormat If .IsLinked And s.MediaType = ppMediaTypeMovie Then .Resample False, .SampleHeight, .SampleWidth, _ .VideoFrameRate, .AudioSamplingRate End If End With Next Next oDoc.Save Next End Sub 

For your first tests "Do not use this code on your original presentations"
This code is provided "AS IS" without warranties, I've tested on my presentations and it work fine.

Похожие вопросы