Resampling Videos in PowerPoint
Getting Started with Media in PowerPoint: Learn how to programmatically increase the size of a video in a Microsoft PowerPoint 2010 presentation by using resampling.
Last modified: May 10, 2011
Applies to: Office 2010 | PowerPoint 2010 | VBA
Published: April 2011
Provided by: Frank Rice, Microsoft Corporation
Adding high-quality videos to a slide presentation can greatly increase the impact that it has on your viewers. Videos can come in various sizes and resolutions. You can Increase or decrease the size and resolution of a video or other graphic by using a process called resampling. In this topic, you add a video to a new Microsoft PowerPoint 2010 slide and then programmatically use resampling to increase its size while maintaining much of its resolution. To complete this task, you must do the following:
In this task, you insert a sample video file into a PowerPoint 2010 presentation.
To insert a video file
Download the PowerPoint 2003 sample video.
Start PowerPoint 2010.
On the Insert menu, click Video, and then click Video from File.
Navigate to the sample video file and then click Insert.
After you add the video, play it to make sure that there are no problems.
In this task, you open a PowerPoint 2010 presentation, open the Visual Basic Editor, and then insert a standard module.
To add a standard module to a PowerPoint presentation
Start PowerPoint 2010.
On the Developer tab, click Visual Basic to open the Visual Basic Editor.
If you do not see the Developer tab in PowerPoint, click the File tab, and then click Options. In the categories pane, click Popular, select Show Developer tab in the Ribbon, and then click OK.
On the Insert menu, click Module. This adds Module1 to the Projects pane on the left side of the Visual Basic Editor.
In this task, you add programming code that uses resampling to change the resolution of a video on slide 1. In this particular instance, the code resets the resolution and then changes the size of the video.
To add code to the Visual Basic Editor
In the Projects pane, click Module1.
Paste or type the following Microsoft Visual Basic for Applications (VBA) code into the module window.
Sub ResampleDemo() ' This code works through every shape on the ' first slide in the presentation, and for each ' video it finds, resamples the video to 240x320. If ' the resampling succeeds, the code resizes the video ' shape to match the new resolution. Dim shp As Shape For Each shp In ActivePresentation.Slides(1).Shapes ' Is it a media shape? If shp.Type = msoMedia Then Debug.Print "Media Element: " & shp.Name Dim newWidth As Integer Dim newHeight As Integer newHeight = 240 newWidth = 320 ' You can specify other parameters, as well, indicating ' the video frame rate, the audio sampling rate, and the ' video bit rate. For now, just resample and reset ' the resolution--the lower the resolution, the smaller the video ' content. shp.MediaFormat.Resample True, newHeight, newWidth Do DoEvents Pause 1 Debug.Print "Resample status: " & shp.MediaFormat.ResamplingStatus Loop While shp.MediaFormat.ResamplingStatus = ppMediaTaskStatusInProgress Debug.Print "Resample status: " & shp.MediaFormat.ResamplingStatus If shp.MediaFormat.ResamplingStatus = ppMediaTaskStatusDone Then shp.Width = newWidth shp.Height = newHeight End If End If Next shp End Sub Function Pause(numberOfSeconds As Variant) Dim startTime, endTime As Variant startTime = Timer endTime = startTime + numberOfSeconds Do While Timer < endTime DoEvents Loop End Function
Close the Visual Basic Editor.
In this task, you run the VBA code that resets the resolution of the video and then resizes it.
To run the code
On the Developers tab, click Macros, select ResampleDemo, and then click Run. Notice that the code resizes the video, but that the resolution is still comparable to that of the original. Note that the code also writes resampling information to the Visual Basic Editor Immediate window.
In the following procedure, you step through the code and watch how each line modifies the video. The best way to see the code in action is to place the Visual Basic Editor window next to the PowerPoint window.
To step through the code
Delete the existing video from slide 1 and then reinsert a new version.
Open the Visual Basic Editor and drag it to the right side of your monitor.
Drag the PowerPoint window to the left side of the monitor and adjust both windows until you can see them both.
Place the cursor in the ResampleDemo procedure and then press F8 to step through the code line-by-line. Watch the results in the PowerPoint window.