Misc. Example code from the seminar (modMiscExamples)
Option Explicit
Sub FolderFullFromArray()
' Uses array to collect filenames for processing
' This is more reliable than processing the files within a loop
' that includes DIR
Dim rayFileNames() As String
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"
' Redimension the array to 1 element
ReDim rayFileNames(1 To 1) As String
' 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
' Add it to the array
rayFileNames(UBound(rayFileNames)) = strCurrentFile
strCurrentFile = Dir
' redimension the array
ReDim Preserve rayFileNames(1 To UBound(rayFileNames) + 1) As String
Wend
' If there were no files, the array has one element
' If it has more than one element, the last element is blank
If UBound(rayFileNames) > 1 Then
' lop off the last, empty element
ReDim Preserve rayFileNames(1 To UBound(rayFileNames) - 1) As String
Else
' no files found
Exit Sub
End If
' If we got this far, we have files to process in the array so
Dim x As Long
For x = 1 To UBound(rayFileNames)
' open the presentation
Presentations.Open (rayFileNames(x))
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
Next x
End Sub
Click Next to continue