Office Logo VBA  Zurück zur Hauptseite

VBA-Befehle und -Funktionen

       Allgemeines über VBA-Befehle und -Funktionen

       Übersicht über die VBA-Befehle und -Funktionen

          VBA-Befehle

          VBA-Funktionen

       Begriffserklärungen

 

       Zur Hauptseite

To Top

Allgemeines über VBA-Befehle und -Funktionen

Die Programmiersprache VBA besitzt eine Reihe verschiedener Befehle und Funktionen, die im Zusammenhang mit Dateien, Verzeichnissen, Laufwerken und Programmen verwendet werden können. Auf dieser Seite werden alle 25 dafür bereitstehenden Sprachelemente vorgestellt und insbesondere auf Spezialitäten sowie wichtige, in den Dokumentationen nicht beschriebene und somit meist unbekannte Eigenheiten und Probleme hingewiesen.

Diese Seiten enthalten verwandte Themen:

Weitere Informationen

Relative Pfade

VBA-Spezialthema "FileSystemObject"

VBA-Spezialthema "OLE Document Properties Object Library"

VBA-Spezialthema "Windows Script Host"

Excel-Objektmodell

VBA-Codebeispiele

Phil's Office Secrets: Kompatibilität zwischen Excel für Windows und Excel für Macintosh

To Top

 


Übersicht über die VBA-Befehle und -Funktionen

VBA-Befehle

Befehl Zweck
AppActivate Title, [Wait] Aktiviert das Anwendungsfenster, dessen Fenstertitel mit der in Title angegebenen Zeichenfolge beginnt oder übereinstimmt.

Anstelle des Fenstertitels kann auch die Task-ID der Anwendung angegeben werden.

Hinweis
Mit AppActivate kann nur eine bereits gestartete Anwendung aktiviert werden; anderenfalls erscheint der Laufzeitfehler 5 "Ungültiger Prozeduraufruf oder ungültiges Argument". Die vergleichbare Methode ActivateMicrosoftApp aus der Microsoft Excel-Objektbibliothek dagegen startet die zu aktivierende Anwendung selbständig, falls diese noch nicht ausgeführt wird. Weitere Informationen erhalten Sie unter Excel-Objektmodell: Methoden von Application.

Weitere Informationen über AppActivate erhalten Sie unter The eXpLorer: Senden von Tastenbefehlen.

ChDir Pfadname Wechselt das aktuelle Verzeichnis auf Pfadname.

Hinweis
- Als Pfadname kann auch ein UNC-Pfad (\\Server\Share...) angegeben werden, d.h. ChDir wechselt korrekt zwischen UNC-Pfaden.
- Es können relative Pfadangaben verwendet werden. Beispiele:
  » Mit ChDir ".." wird zum übergeordneten Verzeichnis des aktuellen Verzeichnisses gewechselt.
  » Mit ChDir "\" wird zum Root des aktuellen Laufwerkes gewechselt.
  » Mit ChDir "x" wird in das Unterverzeichnis "x" gewechselt, welches sich im aktuellen Verzeichnis befinden muss (siehe auch Funktion CurDir).
- Der angegebene Pfad muss sich auf dem aktuellen Laufwerk befinden, anderenfalls hat ChDir keine Auswirkung.

Weitere Informationen über relative Pfade erhalten Sie unter Relative Pfade.

ChDrive Laufwerk Wechselt das aktuelle Laufwerk auf Laufwerk.

Hinweis
Beachten Sie, dass ChDrive keine UNC-Pfade bzw. mittels UNC ausgedrückte Laufwerksangaben verarbeitet. Wenn für Laufwerk ein UNC-Pfad bzw. -Laufwerk angegeben wird, erscheint der Laufzeitfehler 5 "Unzulässiger Prozeduraufruf oder ungültiges Argument". Diesen Fehler können Sie verhindern, indem Sie die Anweisung "On Error Resume Next" verwenden, oder indem Sie überprüfen, ob das erste Zeichen von Laufwerk ein Buchstabe ist.

Wenn auf ein Laufwerk gewechselt wird, welches nicht verfügbar ist, erscheint der Laufzeitfehler 68 "Gerät nicht verfügbar". Bei einem solchen Laufwerk handelt es sich oft um ein Diskettenlaufwerk ohne eingelegte Diskette oder ein CD-ROM-Laufwerk ohne CD.

Close [Dateinummerliste] Schliesst eine einzelne, mehrere oder alle mit Open geöffneten Dateien.

Siehe auch Befehl Reset.

FileCopy Quelldatei, Zieldatei Kopiert eine einzelne Datei.

Hinweis
- Es können keine Platzhalterzeichen (*, ?) verwendet werden.
- Wenn die als Zieldatei angegebene Datei bereits existiert, wird sie ohne Warnungmeldung überschrieben.
- Wenn Sie Platzhalter verwenden möchten um mehrere Dateien zu kopieren, oder wenn eine existierende Datei nicht automatisch überschrieben werden darf, sollten Sie die CopyFile-Methode aus der FileSystemObject-Bibliothek (Microsoft Scripting Runtime) einsetzen.
- Detaillierte Informationen über die Laufzeitfehler im Zusammenhang mit FileCopy finden Sie unter VBA-Laufzeitfehler: Mögliche Laufzeitfehler beim Kopieren einer Datei.

Kill Pfadname Löscht eine oder mehrere Datei(en).

Anmerkung zu Windows
Unter Microsoft Windows unterstützt die Kill-Anweisung die Verwendung von Platzhaltern für mehrere Zeichen (*) und für ein einzelnes Zeichen (?), um mehrere Dateien anzugeben.

Anmerkung zu Macintosh
Auf dem Macintosh werden die Platzhalterzeichen als gültige Zeichen von Dateinamen behandelt und können daher nicht als Platzhalter zum Angeben mehrerer Dateien verwendet werden. Da der Macintosh die Platzhalter nicht unterstützt, verwenden Sie den Dateityp, um Gruppen von Dateien zu kennzeichnen. Sie können die MacID-Funktion verwenden, um den Dateityp anstatt des Dateinamens anzugeben. Die folgende Anweisung löscht z.B. alle TEXT-Dateien im aktuellen Ordner:
  Kill MacID("TEXT")
Wenn Sie die MacID-Funktion zusammen mit der Kill-Anweisung in Microsoft Windows verwenden, tritt ein Fehler auf. Weitere Informationen über die MacID-Funktion finden Sie unter Phil's Office Secrets: Kompatibilität zwischen Excel für Windows und Excel für Macintosh: MacID-Funktion.

Hinweis
- Die Anweisung berücksichtigt keine verborgenen Dateien, d.h. Dateien, bei denen das Attribut 'Versteckt' gesetzt ist. Zum Löschen einer solchen versteckten Datei muss zuerst das Attribut entfernt werden (siehe Befehl SetAttr).
- Schreibgeschützte Dateien lassen sich dagegen problemlos löschen.
- Spezifische Dateiberechtigungen des Benutzers werden einfach ignoriert. Beispielsweise wird die Datei auch dann gelöscht, wenn der Benutzer keine Rechte besitzt (d.h. Dateiberechtigung "Kein Zugriff").

Interessant ist, dass eine zu löschende Datei zwar schreibgeschützt, aber nicht versteckt sein darf. Bei einem Verzeichnis ist es nämlich genau umgekehrt: Das zu löschende Verzeichnis darf versteckt, aber nicht schreibgeschützt sein (siehe Befehl RmDir).

MkDir Pfadname Legt ein neues Verzeichnis mit dem Namen Pfadname an.

Hinweis
- Die Verwendung eines relativen Pfades ist erlaubt. Als Basisverzeichnis wird immer das aktuelle Verzeichnis verwendet (siehe Funktion CurDir).
- Die Anweisung berücksichtigt auch versteckte Verzeichnisse. Das Anlegen eines neuen Unterverzeichnisses in einem Verzeichnis, welches verborgen ist, stellt kein Problem dar. Beispiel:
  MkDir "C:\Temp\Hidden\Neu"
Auch wenn der in obiger Anweisung angegebene Ordner "Hidden" das Attribut 'Versteckt' besitzt, wird das Unterverzeichnis "Neu" erstellt.

Weitere Informationen über relative Pfade erhalten Sie unter Relative Pfade.

Name Benennt eine Datei oder ein Verzeichnis um oder verschiebt eine Datei oder ein Verzeichnis.

Hinweis
- Es können keine Platzhalterzeichen (*, ?) verwendet werden, weder beim Umbenennen noch beim Verschieben.
- Wenn die Datei bzw. das Verzeichnis bereits existiert, tritt der Laufzeitfehler 58 "Datei existiert bereits" auf.
- Verborgene Dateien und Ordner können problemlos umbenannt bzw. verschoben werden.
- Auch schreibgeschützte Dateien und Ordner lassen sich problemlos umbenennen bzw. verschieben.
- Obwohl in der VBA-Referenz (Hilfe) steht, dass sich Quellpfad und Zielpfad auf dem gleichen Laufwerk befinden müssen, funktioniert das Verschieben auf ein anderes Laufwerk einwandfrei (auch bei gleichzeitigem Umbenennen).
- In bestimmten Situationen verweigert die Name-Anweisung ihren Dienst, obwohl sie korrekt verwendet wird. Mehr darüber erfahren Sie unter Bekannte Probleme in VBA: Verwendung von Dir und Name führt zu Fehler 75.

Open Öffnet eine Datei mit einem bestimmten Zugriffsmodus.

Weitere Informationen erhalten Sie unter Zugriffstechniken auf sequentielle und binäre Dateien.

Reset Schliesst alle geöffneten Dateien.

Siehe auch Befehl Close.

RmDir Löscht ein Verzeichnis.

Hinweis
- Das zu löschende Verzeichnis muss komplett leer sein; anderenfalls erscheint der Laufzeitfehler 75 "Fehler bei Zugriff auf Pfad/Datei".
- Es können keine Platzhalterzeichen (*, ?) verwendet werden.
- Relative Pfadangaben können verwendet werden.
- Das zu löschende Verzeichnis darf nicht schreibgeschützt sein.
- Ein verstecktes Verzeichnis wird problemlos erkannt und gelöscht.

Interessant ist, dass ein zu löschendes Verzeichnis zwar versteckt, aber nicht schreibgeschützt sein darf. Bei einer Datei ist es nämlich genau umgekehrt: Die zu löschende Datei darf schreibgeschützt, aber nicht versteckt sein (siehe Befehl Kill).

Informationen über relative Pfade erhalten Sie unter Relative Pfade.

Seek Dateinummer, Position Legt in einer mit der Open-Anweisung geöffneten Datei die Position für den nächsten Lese- oder Schreibvorgang fest.

Hinweis
Beachten Sie, dass es sowohl eine Anweisung als auch eine Funktion mit der gleichnamigen Bezeichnung "Seek" gibt.

Siehe auch Funktion Seek.

SetAttr Setzt die Attribute einer Datei oder eines Verzeichnisses.

Hinweis
- Es können keine Platzhalterzeichen (*, ?) verwendet werden.
- Relative Pfadangaben dürfen verwendet werden.

Tipp
Nach Ändern des Attributes/der Attribute einer Datei oder eines Ordners sollte ein DoEvents ausgeführt werden.

Siehe auch Funktion GetAttr.

To Top

 


VBA-Funktionen

Funktion Zweck
CurDir[(Laufwerk)] Zeigt das aktuelle Verzeichnis des aktuellen Laufwerkes, oder bei der Angabe des Parameters Laufwerk eines beliebigen Laufwerkes.

Siehe auch Befehl ChDir.

Dir[(Pfadname, [Attribute])] Gibt den Namen einer Datei oder eines Verzeichnisses zurück, der mit einem bestimmten Suchmuster, einem Dateiattribut oder mit der angegebenen Laufwerksbezeichnung übereinstimmt.

Hinweis
- Platzhalterzeichen (*, ?) können bei dieser Funktion verwendet werden.
- Wenn es mehrere Übereinstimmungen mit dem Suchmuster (bzw. Dateiattribut bzw. Laufwerk) gibt, werden die Dateinamen unsortiert zurückgegeben.

Weitere Informationen erhalten Sie unter VBA-Spezialthema: Bekannte Probleme in VBA.

Environ({Umgebungsvariable | Nummer}) Ermittelt den Inhalt einer System- oder Benutzervariable.

Hinweis
- Enthält der Parameter Umgebungsvariable einen als Variable nicht bekannten Begriff, so wird eine leere Zeichenfolge zurückgegeben.
- Am häufigsten wird Environ zum Ermitteln des Temp- oder des Windows-Verzeichnisses verwendet:
  » Mit Environ("Temp") wird das Verzeichnis für temporäre Dateien (Temp-Verzeichnis) ermittelt.
  » Mit Environ("WinDir") wird das Stammverzeichnis von Windows abgefragt.

EOF(Dateinummer) Stellt fest, ob das Ende einer geöffneten Datei erreicht ist.

Gibt True zurück, wenn das Dateiende erreicht ist, ansonsten False.

FileAttr(Dateinummer, 1) Gibt den Zugriffsmodus einer mit Open geöffneten Datei zurück.
FileDateTime(Pfadname) Gibt Datum und Zeit der letzten Änderung einer Datei oder eines Verzeichnisses zurück.

Als Format wird das in der Systemsteuerung eingestellte Datum-/Uhrzeit-Format verwendet. Es entspricht dem vordefinierten benannten Format "General Date", welches bei der Format-Funktion angegeben werden kann. Beispiel:
  MsgBox Format(Now, "General Date")

Hinweis
- Es können keine Platzhalterzeichen (*, ?) verwendet werden. Bei Angabe eines Platzhalters erscheint der Laufzeitfehler 52 "Dateiname oder -nummer falsch".
- Relative Pfadangaben dürfen verwendet werden.
- Auch versteckte Dateien und Ordner können abgefragt werden.
- Wird eine nicht vorhandene Datei angegeben, tritt der Laufzeitfehler 53 "Datei nicht gefunden" auf.
- Wird ein nicht vorhandener Ordner angegeben, tritt ebenfalls der Laufzeitfehler 53 "Datei nicht gefunden" auf.
- Wird eine Datei angegeben, deren Pfad nicht existiert, erscheint der Laufzeitfehler 76 "Pfad nicht gefunden".

FileLen(Pfadname) Gibt die Länge einer Datei in Bytes zurück (=Dateigrösse).

Hinweis
- Es können keine Platzhalterzeichen (*, ?) verwendet werden.
- Relative Pfadangaben dürfen verwendet werden.
- Auch versteckte Dateien können abgefragt werden.
- Wenn ein Ordner angegeben wird, gibt FileLen den Wert 0 zurück.
- Wird eine nicht vorhandene Datei angegeben, tritt der Laufzeitfehler 53 "Datei nicht gefunden" auf.

Siehe auch Funktion LOF.

FreeFile() Ermittelt die nächste freie Dateinummer, die mit Open verwendet werden kann.

Die von FreeFile zurückgegebene Zahl liegt im Bereich von 1 bis 511.

GetAttr(Pfadname) Gibt die Attribute einer Datei, eines Verzeichnisses oder eines Laufwerkes zurück.

Hinweis
- Es können keine Platzhalterzeichen (*, ?) verwendet werden.
- Relative Pfadangaben dürfen verwendet werden.
- Wenn Sie die Attribute einer Datei abfragen, die von einem Windows-Prozess exklusiv verwendet wird (z.B. die Speicher-Auslagerungsdatei "pagefile.sys" von Windows), erscheint der Lautzeitfehler 5 "Ungültiger Prozeduraufruf oder ungültiges Argument".

Siehe auch Befehl SetAttr.

LOF() Gibt die Länge einer mit Open geöffneten Datei in Bytes zurück.
Seek(Dateinummer) Gibt die aktuelle Schreib-/Leseposition in einer mit Open geöffneten Datei zurück.

Hinweis
Beachten Sie, dass es sowohl eine Anweisung als auch eine Funktion mit der gleichnamigen Bezeichnung "Seek" gibt.

Siehe auch Befehl Seek.

Shell(Pfadname, [Fensterstil]) Startet ein ausführbares Programm und gibt die Task-ID des Programmes zurück.

Hinweis
Weitere Informationen erhalten Sie unter VBA-Spezialthema: Starten von Programmen.

To Top

 


Begriffserklärungen

Dateinummer
Eine Zahl, die in der Open-Anweisung verwendet wird, um eine Datei zu öffnen.
- Verwenden Sie Dateinummern im Bereich von 1 bis einschliesslich 255 für Dateien, auf die von anderen Anwendungen nicht zugegriffen werden kann.
- Verwenden Sie hingegen Dateinummern im Bereich von 256 bis 511 für diejenigen Dateien, auf die von anderen Anwendungen zugegriffen werden kann.

Dateinummerliste
Eine Liste mit einer oder mehreren Dateinummer(n). Die Dateinummerliste wird bei der Close-Anweisung verwendet, um alle Dateien zu schliessen, deren Dateinummern in der Liste angegebenen sind.

Zugriffsmodus
Die Art und Weise, wie auf eine mit Open geöffnete Datei zugegriffen wird. Die zur Verfügung stehenden Zugriffsmodi heissen Input, Output, Append, Random und Binary. Weitere Informationen über Zugriffsmodi erhalten Sie unter Zugriffstechniken auf sequentielle und binäre Dateien.

To Top

Haben Sie Fragen, Anregungen oder Hinweise?
Senden Sie mir eine Mail

Zuletzt aktualisiert am 09.06.2005 / 18:15 Uhr
Zuletzt kontrolliert am 01.01.2009 / 10:00 Uhr
© 2002-2009 by Philipp von Wartburg, Schweiz