Presentation Timings

The challenge

One of the assignments I set each year is for a group of students to prepare a narrated powerpoint presentation. It’s a useful exercise (I think), the students get to practise some of the presentation skills we try to teach and they can get to put a talk together in a way that appropriate for online/computer use.

However, in the marking scheme is a timing criteria. The presentation has to be between 15-20 minutes long. Most go over that time, and there a small marking penalty for that, but obtaining an accurate figure of how long the whole presentation is is tricky. I usually listen to the whole presentation with a stopwatch and try not to loose too much time during the slide transitions.

The solution

I wanted to see if I could get some vba code to count the length of the sound clips and combine them together to give me a total ‘sound length’. It took me some digging, but this is what I came up with.

Sub SoundLength()

'declare the variables

Dim sld As Slide
Dim so As Shape
Dim SL As Long
Dim Totalmin As Integer
Dim Totalsec As Integer

'reset the key variable

SL = 0
total = 0


For Each sld In ActivePresentation.Slides 'loops through ecah slide in the file

    For Each so In sld.Shapes 'loops through each shape in the slide

        If so.Type = msoMedia Then 'if the shape is a sound clip then...

            If so.MediaType = ppMediaTypeSound Then

            total = total + so.MediaFormat.Length 'count the length of the sound in milliseconds
            ' and adds it to a running total
            End If

        End If

    Next
    
Next sld

total = total / 60000 'returns the total number of seconds

Totalmin = Int(total) 'calculate the number of minutes

Totalsec = Int((total - Totalmin) * 60) 'calculate the remain no. of seconds

MsgBox (Totalmin & "min/" & Totalsec & "sec")

End Sub

How do you get it to work?

Open powerpoint. Press Alt + F11 and this should open the Developer/VBA window. Go to the menu bar and click insert, and insert a module. Copy the above code into the code window. It should look like the banner image for this block post. Save the powerpoint file as some suitable name. Open the powerpoint file you want to analyse, and then click on the window containing the code and then run the macro (the wee green triangle, or the Run in the menu bar). A window will pop up with the minutes and seconds.

References and comments

  1. This link really got me going
  2. I had lots of help from docs.microsoft.com
Categories: Tags: , , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s