This article was previously published under Q201543
The following code example shows how to control a Windows Media Player ActiveX object control in a presentation by using Microsoft Visual Basic for Applications (VBA). This allows you to run several different movies from one object and several action buttons.
NOTE: The Microsoft PowerPoint Viewer does not support the use of ActiveX controls, nor do any of the Macintosh versions of PowerPont. Only Microsoft PowerPoint 97, Microsoft PowerPoint 2000, and Microsoft PowerPoint 2002 can activate and use ActiveX controls.
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements. NOTE: The following macro examples work only in PowerPoint. Visual Basic for Applications macros are not supported by the Microsoft PowerPoint Viewer. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:NOTE: The following code sample assumes you have a slide that contains a Windows Media Player ActiveX object and two (or more) action buttons. To add a Windows Media Player ActiveX object, follow these steps:
On the View menu, point to Toolbars, and click Control Toolbox.
In the Control Toolbox, click More Tools.
In the list of available ActiveX Controls, click Windows Media Player.
Draw the control somewhere on your slide. You may want to drag the control to the gray area outside the actual slide area.
To start the Visual Basic Editor in the code module for the current slide, double-click the control.
Replace the existing code with the following sample code. In order for this code to work, it cannot be in its own module. It must be in the module that corresponds to the slide from which it will be run.
Sample Visual Basic Procedure
Const strPATHNAME As String = "C:\videos\"'Change this line to the path where your movie files are stored.'Be sure to include the trailing backslash!Private Sub MediaPlayer1_EndOfStream(ByVal Result As Long)'Check to see if the movie has ended. If so, then set the'control's visibility to false and turn off autostart. Dim strName As String If Result = 0 Then strName = "" With MediaPlayer1 .Visible = False .AutoStart = False .FileName = strName End With SlideShowWindows(1).View.GotoSlide 1, msoTrue End IfEnd SubSub startme1()'This is attached to an action button. Dim strName As String 'Set the file name to movie you want to play strName = strPATHNAME & "movie1.avi" RunMovie strNameEnd SubSub startme2()'This is attached to an action button.'You can have as many of these as you want.'Just copy startme1 and paste into the project, but'make sure you change the name of the subroutine. Dim strName As String 'Set the file name to the movie you want to play. strName = strPATHNAME & "movie2.avi" RunMovie strNameEnd SubSub RunMovie(strName As String)'This function sets the various parameters, then resets'the slide as the last step. With MediaPlayer1 .AutoStart = True .DisplaySize = mpFullScreen 'You can choose whatever size you want for the playback 'of the movie with the .DisplaySize method. .Visible = True .EnableFullScreenControls = False .EnablePositionControls = False .EnableTracker = False .FileName = strName End With SlideShowWindows(1).View.GotoSlide 1, msoTrueEnd Sub
For more information about how to use the sample code in this article, clickthe article number below to view the article in the Microsoft Knowledge Base:
212536 OFF2000: How to Run Sample Code from Knowledge Base Articles
For additional information about getting help with Visual Basic for Applications, click the article number below to view the article in the Microsoft Knowledge Base:
226118 OFF2000: Programming Resources for Visual Basic for Applications
For additional information about using ActiveX controls, click the article number below to view the article in the Microsoft Knowledge Base:
222703 PPT2000: How To Manipulate ActiveX Controls Through VBA Macros