This is a very simple-minded approach you can use to run quick 'n dirty macros on every presentation in a folder.
Also see Do something to -- every shape on a slide, every slide in a presentation, every presentation in a folder for more example code.
You need to edit the FolderPath and FileSpec lines in ForEachPresentation below before you use this.
Then edit MyMacro do do whatever you need it to do.
MyMacro will be called for each file in FolderPath that matches FileSpec
Sub ForEachPresentation()
' Run a macro of your choosing on each presentation in a folder
Dim rayFileList() As String
Dim FolderPath As String
Dim FileSpec
Dim strTemp As String
Dim x As Long
' EDIT THESE to suit your situation
FolderPath = "c:\some\folder\" ' Note: MUST end in \
FileSpec = "*.ppt"
' END OF EDITS
' Fill the array with files that meet the spec above
ReDim rayFileList(1 To 1) As String
strTemp = Dir$(FolderPath & FileSpec)
While strTemp <> ""
rayFileList(UBound(rayFileList)) = FolderPath & strTemp
ReDim Preserve rayFileList(1 To UBound(rayFileList) + 1) As String
strTemp = Dir
Wend
' array has one blank element at end - don't process it
' don't do anything if there's less than one element
If UBound(rayFileList) > 1 Then
For x = 1 To UBound(rayFileList) - 1
Call MyMacro(rayFileList(x))
Next x
End If
End Sub
Sub MyMacro(strMyFile As String)
' this gets called once for each file that meets the spec you enter in ForEachPresentation
' strMyFile is set to the file name each time
' Probably at a minimum, you'd want to:
Dim oPresentation As Presentation
Set oPresentation = Presentations.Open(strMyFile)
With oPresentation
' do something
End With
oPresentation.Save
oPresentation.Close
End Sub
See How do I use VBA code in PowerPoint? to learn how to use this example code.
-----Quoted from:http://www.pptfaq.com/FAQ00536.htm
Related links:
Powerpoint & DVD Knowledge Centre
2008年7月24日星期四
订阅:
博文评论 (Atom)
没有评论:
发表评论