Die folgende Funktion ist recht simpel aufgebaut und kann ganz nach Belieben verändert und angepasst werden. Weiter
unten finden Sie Informationen zu den farblich hervorgehobenen Elementen. Diese Subroutine kann sowohl in eine Form
als auch in ein Modul, ein Klassenmodul oder jedes andere Objekt gesetzt werden:
Sub ForEachSubPath(StartFolder As String)
Dim sName As String
Dim FileName As String
Dim FolderName As String
Dim Dirs() As String
Dim DirsNo As Integer
Dim i As Integer
'Eventuell Backslash anhängen
If Right(StartFolder, 1) <> "\" Then StartFolder = StartFolder & "\"
'Alle Dateien des Verzeichnisses auflisten
sName = Dir(StartFolder & "*.*")
While Len(sName) > 0
FileName = StartFolder & sName 'Filename enthält dann die aktuelle Datei
'Hier Ihren Code für jede Datei einsetzen...
sName = Dir
Wend
'Alle Unterverzeichnisse in Array einlesen
DirsNo = 0
sName = Dir(StartFolder, vbDirectory)
While Len(sName) > 0
If sName <> "." And sName <> ".." Then
DirsNo = DirsNo + 1
ReDim Preserve Dirs(DirsNo) As String
Dirs(DirsNo - 1) = sName
End If
sName = Dir
Wend
For i = 0 To DirsNo - 1
FolderName = StartFolder & Dirs(i) & "\"
ForEachSubPath (FolderName)
'Hier Ihren Code für jedes Verzeichnis einsetzen...
Next
End Sub
|
Hier Ihren Code... =
|
Hier können Sie Ihren Code einsetzen, der für jede Datei bzw. jedes Verzeichnis einmal aufgerufen wird.
Dabei enthält die Variable "FileName" bzw.
"FolderName" den Pfad- bzw. Dateinamen der aktuellen Datei oder
des aktuellen Verzeichnisses.
|
|
ForEachSubPath =
|
Wenn Sie die Prozedur umbenennen wollen, müssen Sie diese beiden Werte umbenennen, damit es weiterhin
funktioniert.
|
Der Aufruf der Funktion ist ganz simpel:
ForEachSubPath "C:\Programme"
Dieser Aufruf würde bewirken, dass alle Dateien und Unterverzeichnisse des Verzeichnisses "Programme" gescannt
werden.