VBA-Programmierung in Microsoft Excel

Tutorial: Excel-Beispiele

VBA-Begriff: Dir-Funktion

Gibt eine Zeichenfolge (String) zurück, die den Namen einer Datei, eines Verzeichnisses oder eines Ordners darstellt, der mit einem bestimmten Suchmuster, einem Dateiattribut oder mit der angegebenen Datenträger- bzw. Laufwerksbezeichnung übereinstimmt.

Syntax

Dir[(Pfadname[, Attribute])]

Die Syntax der Dir-Funktion besteht aus folgenden Teilen:

Teil Beschreibung
Pfadname Optional. Zeichenfolgenausdruck, der einen Dateinamen angibt. Der Dateiname kann ein Verzeichnis oder einen Ordner sowie ein Laufwerk enthalten. Eine Null-Zeichenfolge ("") wird zurückgegeben, wenn der Pfad aus Pfadname nicht gefunden werden kann
Attribute Optional. Eine Konstante oder ein numerischer Ausdruck, deren Summe die Dateiattribute angibt. Wenn das Argument nicht angegeben wird, werden alle Dateien, die dem Argument Pfadnamen entsprechen, zurückgegeben.

Einstellungen

Das Argument Attribute hat die folgenden Einstellungen:

Konstante Wert Beschreibung
vbNormal 0 (Voreinstellung) Dateien ohne Attribute.
vbReadOnly 1 Schreibgeschützte Dateien, zusätzlich zu Dateien ohne Attributen.
vbHidden 2 Versteckte Dateien, zusätzlich zu Dateien ohne Attributen.
VbSystem 4 Systemdatei, zusätzlich zu Dateien ohne Attributen. Beim Macintosh nicht verfügbar.
vbVolume 8 Datenträgerbezeichnung. Falls andere Attribute angegeben wurden, wird vbVolume ignoriert. Beim Macintosh nicht verfügbar.
vbDirectory 16 Verzeichnis oder Ordner, zusätzlich zu Dateien ohne Attributen.
vbAlias 64 Der angegebene Dateiname ist ein Alias. Nur beim Mactintosh verfügbar.

Anmerkung Diese Konstanten werden durch Visual Basic für Applikationen definiert und können beliebig im Code anstelle der tatsächlichen Werte verwendet werden.

Bemerkungen

Die Dir-Funktion unterstützt unter Microsoft Windows die Verwendung von * (Platzhalter für mehrere Zeichen) und ? (Platzhalter für ein einzelnes Zeichen) zur Angabe von mehreren Dateien. Beim Macintosh werden diese Zeichen als normale Dateinamenzeichen behandelt und können nicht als Platzhalter zur Angabe mehrerer Dateien verwendet werden.

Da beim Macintosh Platzhalter nicht unterstützt werden, muß man den Dateitypen verwenden, um eine Gruppe von Dateien zu identifizieren. Sie können die MacID-Funktion verwenden, um nach Dateitypen statt nach Dateinamen zu suchen. Beispiel: Die folgenden Anweisung gibt den Namen der ersten TEXT-Datei im aktuellen Ordner zurück:

Dir("EinPfad", MacID("TEXT"))

Um alle Dateien in einem Ordner zu berücksichtigen, geben Sie eine leere Zeichenfolge an:

Dir("")

Wenn Sie die MacID-Funktion mit Dir unter Microsoft Windows, erhalten Sie eine Fehlermeldung.

Jeder Wert der Konstante Attribute, der größer ist als 256, wird als Wert von MacID angesehen.

Beim ersten Aufrufen der Dir-Funktion müssen Sie das Argument Pfadname angeben, da ansonsten ein Fehler auftritt. Wenn Sie Dateiattribute angeben, muß Pfadname auch angegebeben werden.

Die Dir-Funktion gibt den ersten Dateinamen zurück, der mit dem Argument Pfadname übereinstimmt. Weitere mit dem Argument Pfadname übereinstimmende Dateinamen erhalten Sie durch das erneute Aufrufen der Dir-Funktion ohne Angabe von Argumenten. Wenn keine weiteren übereinstimmenden Dateinamen gefunden werden, gibt die Dir-Funktion eine Null-Zeichenfolge ("") zurück. Wurde einmal eine Null-Zeichenfolge zurückgegeben, müssen Sie bei nachfolgenden Aufrufen wieder das Argument Pfadname angeben, da sonst ein Fehler auftritt. Sie können einen anderen Wert für Pfadname angeben, bevor sie alle mit dem aktuellen Wert von Pfadname übereinstimmenden Dateinamen abgerufen haben. Ein rekursiver Aufruf der Dir-Funktion ist allerdings nicht möglich. Beim Aufruf von Dir mit dem Attribut vbDirectory werden Unterverzeichnisse nicht fortlaufend zurückgegeben.

Tip Die Dateinamen werden unsortiert zurückgegeben. Bei Bedarf können Sie die zurückgegebenen Dateinamen in einem Datenfeld speichern und das Datenfeld anschließend sortieren.