Die Funktion Dir() ist sehr nützlich zum Suchen von Dateien und zum Bearbeiten einer Liste von Dateien. In einer ersten Anwendung soll fest- gestellt werden, ob es in dem Verzeichnis, in dem sich die Anwendung befindet, eine Datei mit dem Namen text.txt gibt:
Sub DateiSuchen()
' Suche mit Suchmuster
If Dir(ThisWorkbook.Path & "\test.txt") <> "" Then
MsgBox "Datei test.txt gefunden"
Else
MsgBox "Datei test.txt nicht gefunden"
End If
End Sub
Die Funktion Dir() liefert den Namen einer Datei, der dem angegebenen Suchmuster entspricht. Dabei können Sie auch Platzhalter für einzelne Zeichen ( ? ) oder mehrere Zeichen ( * ) verwenden. Im vorliegenden Beispiel wurde nach einem bestimmten Dateinamen, ohne Platzhalter, gesucht. Der Rückgabewert ist entweder der Name der Datei (falls sie existiert) oder eine leere Zeichenkette (falls die Datei nicht existiert). Mit Hilfe der zweiten Anwendung wird eine Liste aller Dateien, die einem bestimmten Suchmuster entsprechen, ausgegeben:
Sub DateiListe()
Dim DateiName As String
Dim Ausgabe As String
' Suche mit Suchmuster
DateiName = Dir(ThisWorkbook.Path & "\*.txt")
Ausgabe = ""
Do While DateiName <> ""
Ausgabe=Ausgabe&""&DateiName
' Suche mit ursprünglichem Suchmuster
DateiName = Dir
Loop
MsgBox Ausgabe
End Sub
Zunächst wird die Funktion Dir() mit einem Parameter aufgerufen. Darin wird angegeben, dass nach Dateien mit der Dateiendung .txt gesucht wird. Der Name der ersten Datei, die dem Suchmuster entspricht, wird in der Variablen DateiName gespeichert (z. B. ein.txt). Anschließend wird eine Schleife begonnen. Falls eine Datei gefunden wurde, dann ist die Variable DateiName nicht leer, also wird die Schleife durchlaufen.
Der ermittelte Name wird in einer Ausgabevariablen gesammelt. Die Funktion Dir() wird innerhalb der Schleife erneut aufgerufen, diesmal ohne Parameter. Dies führt dazu, dass nach der nächsten Datei gesucht wird, die dem ursprünglichen Suchmuster entspricht. Auf diese Weise wird die Schleife so lange durchlaufen, bis alle Dateien, die dem gleichen Suchmuster entsprechen, erfasst wurden. Zu guter Letzt werden alle aufgesammelten Dateinamen ausgegeben.