This is the code from the Mass Quantities section of the seminar (modMassQuantities) that deals with automating actions across many slides or many presentations.
Option Explicit
Sub GreenToRed()
' Object variables for Slides and Shapes
Dim oSh As Shape
Dim oSl As Slide
For Each oSl In ActivePresentation.Slides
For Each oSh In oSl.Shapes
If oSh.Fill.ForeColor.RGB = RGB(0, 255, 0) Then
oSh.Fill.ForeColor.RGB = RGB(255, 0, 0)
End If
Next oSh
Next oSl
End Sub
Sub FolderFull()
' For each presentation in a folder that matches our specifications
' - open the file
' - call another subroutine that does something to it
' - save the file
' - close the file
Dim strCurrentFile As String ' variable to hold a single file name
Dim strFileSpec As String ' variable to hold our file spec
' give it a value that works for my computer:
strFileSpec = "C:\Documents and Settings\Stephen Rindsberg\Desktop\PPTLive\Automation\LotsOfFiles\*.ppt"
' get the first file that matches our specification
strCurrentFile = Dir$(strFileSpec)
' don't do anything if we didn't find any matching files
' but if we did, keep processing files until we don't find any more
While Len(strCurrentFile) > 0
' open the presentation
Presentations.Open (strCurrentFile)
' by changing this next line to call a different subroutine
' you can have this same code do other tasks
Debug.Print ActivePresentation.Name
' call the Green to Red macro to process the file
Call GreenToRed
' save the file under a new name with FIXED_ at the beginning
ActivePresentation.SaveAs (ActivePresentation.Path & "\" _
& "Fixed_" _
& ActivePresentation.Name)
' close it
ActivePresentation.Close
' and get the next file that matches our specification
' if you don't supply a new file spec, Dir$ returns the next
' file that matches the previously supplied specification
strCurrentFile = Dir$
Wend
' Note: Don't use Dir in code that's called from within a loop
' that uses Dir - only one "Dir" can be "active" at a time.
' In production code, it's best to keep it in a very short loop or
' to collect file names in a short loop then process them after
' Arrays are useful for this
End Sub
Click Next to continue