Zum Hauptinhalt springen

Excel VBA: Arbeiten mit Pfaden und Verzeichnissen

Microsoft Excel ist eines der beliebtesten Werkzeuge für die Arbeit mit Daten. Allerdings sind nicht alle Benutzer mit der Programmiersprache VBA (Visual Basic for Applications) vertraut, um Aufgaben in Excel mit der Programmiersprache VBA (Visual Basic for Applications) zu automatisieren. In diesem Artikel werden wir einige VBA-Funktionen im Zusammenhang mit der Arbeit mit Pfaden und Verzeichnissen untersuchen, mit denen Sie Dateien in Excel effizienter verwalten können.

Pfade und Verzeichnisse spielen eine wichtige Rolle bei der Arbeit mit Dateien. Sie werden verwendet, um den Speicherort einer Datei anzugeben, zwischen Ordnern zu navigieren, auf Dateien zuzugreifen und andere Aktionen auszuführen. VBA bietet eine Reihe von Funktionen für die Arbeit mit Pfaden und Verzeichnissen, mit denen Sie die Arbeit mit Dateien in Excel automatisieren können.

Eine der am häufigsten verwendeten VBA-Funktionen ist die Funktion CurDir. Es gibt das aktuelle Verzeichnis zurück, in dem sich die Makrodatei befindet. Dies ist beispielsweise sehr nützlich, wenn Sie eine neue Datei erstellen und sie im selben Verzeichnis wie die Makrodatei speichern müssen.

Eine weitere nützliche Funktion ist die Funktion GetOpenFilename. Mit dieser Option können Sie ein Dialogfeld zur Dateiauswahl öffnen und den Pfad zur ausgewählten Datei abrufen. Auch mit der Funktion GetSaveAsFilename sie können das Dialogfeld Datei speichern öffnen und den zu speichernden Pfad abrufen. Diese Funktionen ermöglichen es dem Benutzer, Dateien und Verzeichnisse auszuwählen, ohne die Pfade manuell eingeben zu müssen.

Es ist wichtig zu beachten, dass VBA-Funktionen für die Arbeit mit Pfaden und Verzeichnissen abwärtskompatibel mit dem Windows-Dateisystem sind. Wenn Sie Funktionen auf anderen Betriebssystemen verwenden, müssen Sie den Code möglicherweise anpassen.

Arbeiten mit Pfaden in Excel VBA

Wege wird häufig verwendet, wenn Sie mit Dateien in Excel VBA arbeiten. Wenn Sie die grundlegenden Pfade kennen, können Sie das Dateisystem effizient verwalten und Dateien in Ihren Makros verarbeiten.

Absolute und relative Pfade - dies sind die zwei Haupttypen von Pfaden, die in VBA verwendet werden können. Absoluter Pfad gibt den vollständigen Pfad der Datei an, beginnend mit dem Stammverzeichnis. Ein relativer Pfad gibt den Dateipfad relativ zum aktuellen Verzeichnis an.

Wir arbeiten mit absoluten Pfaden:

Dim filePath As StringfilePath = "C:\Users\UserName\Documents\example.xlsx"

Im obigen Beispiel definieren wir eine Variable filePath, die den absoluten Pfad zu einer XLSX-Datei enthält. Dieser Pfad bleibt unabhängig vom aktuellen Verzeichnis, in dem sich die Excel-Arbeitsmappe mit dem Makro befindet, unverändert.

Wir arbeiten mit relativen Pfaden:

Dim filePath As StringDim currentPath As StringcurrentPath = ThisWorkbook.PathfilePath = currentPath & "\example.xlsx"

In diesem Beispiel definieren wir eine Variable filePath, die einen relativen Pfad zu einer XLSX-Datei enthält. Wir definieren zuerst die Variable currentPath, die das aktuelle Verzeichnis enthält, in dem sich die Excel-Arbeitsmappe mit dem Makro befindet. Dann kombinieren wir den aktuellen Pfad mit dem Dateinamen, um den vollständigen Pfad zu erhalten.

Verkettung von Pfaden:

Dim folderPath As StringDim fileName As StringDim filePath As StringfolderPath = "C:\Users\UserName\Documents"fileName = "example.xlsx"filePath = folderPath & "\" & fileName

In diesem Beispiel definieren wir die Variable FolderPath, die den Ordnerpfad enthält, und die Variable fileName, die den Dateinamen enthält. Dann verketten wir diese beiden Variablen und fügen ein Trennzeichen "\" zwischen ihnen hinzu, um den vollständigen Dateipfad zu erhalten.

Wenn Sie die grundlegenden Pfade kennen, können Sie das Dateisystem einfach verwalten und verschiedene Dateioperationen in Excel VBA ausführen.

Erstellen und Ändern von Pfaden

In der Programmiersprache VBA gibt es verschiedene Methoden zum Erstellen und Ändern von Datei- und Verzeichnispfaden. Dies ermöglicht es Programmierern, mit dem Dateisystem zu arbeiten, neue Dateien und Ordner zu erstellen und Dateien zu suchen und zu verschieben.

Sie können die folgenden Methoden und Eigenschaften verwenden, um Pfade in Excel VBA zu erstellen und zu ändern:

Methode/EigenschaftDie Beschreibung
CurDir Ruft das aktuelle Arbeitsverzeichnis ab oder legt es fest.
ChDir Ändert das aktuelle Arbeitsverzeichnis.
MkDir Erstellt ein neues Verzeichnis.
RmDir Löscht das Verzeichnis.
Name Benennt eine Datei oder ein Verzeichnis um.
Dir Gibt die erste Datei zurück, die den angegebenen Pfad und den angegebenen Filter erfüllt.

Mit diesen Methoden und Eigenschaften können Sie Verzeichnisse erstellen und löschen, das aktuelle Arbeitsverzeichnis ändern, durch das Dateisystem navigieren und vieles mehr.

Der folgende Code erstellt beispielsweise ein neues Verzeichnis mit dem Namen "Neuer Ordner" im aktuellen Arbeitsverzeichnis:

Sub CreateNewFolder()MkDir "Новая папка"End Sub

Auf diese Weise erstellt das Programm einen neuen Ordner namens "Neuer Ordner" im aktuellen Arbeitsverzeichnis.

Nachdem Sie die Arbeit mit Pfaden und Verzeichnissen in Excel VBA gemeistert haben, können Sie das Dateisystem flexibel verwalten und verschiedene Operationen mit Dateien und Ordnern durchführen.

Abrufen von Informationen zu Pfaden und Verzeichnissen

Wenn Sie mit Dateien und Verzeichnissen in Excel VBA arbeiten, müssen Sie häufig Informationen zu Pfaden, Dateinamen und Verzeichnissen erhalten. In der Sprache VBA gibt es mehrere Möglichkeiten, diese Informationen zu erhalten.

Eine Möglichkeit besteht darin, die integrierten Funktionen zu verwenden, um mit Pfaden zu arbeiten. Beispielsweise gibt die Funktion CurDir() das aktuelle Arbeitsverzeichnis zurück, und mit den Funktionen Dir() und GetAttr() können Sie Informationen über eine Datei oder ein Verzeichnis abrufen.

Eine andere Möglichkeit besteht darin, Objekte aus der Scripting-Bibliothek zu verwenden.FileSystemObject . Diese Objekte ermöglichen es Ihnen, Informationen über Dateien und Verzeichnisse zu erhalten und verschiedene Operationen mit ihnen durchzuführen. Zum Beispiel verfügt das FileSystemObject über die Methoden GetFolder() und getFile(), mit denen Sie Informationen über das Verzeichnis bzw. die Datei abrufen können.

Sie können auch verschiedene Eigenschaften eines Workbook-Objekts verwenden, um Informationen zu einer Datei abzurufen. Beispielsweise gibt die FullName-Eigenschaft den vollständigen Dateinamen mit einem Pfad zurück, die Path-Eigenschaft gibt nur den Dateipfad zurück, und die Name-Eigenschaft gibt nur den Dateinamen ohne Pfad zurück.

Sie können die Informationen zu Pfaden und Verzeichnissen verwenden, um verschiedene Operationen durchzuführen, z. B. das Kopieren oder Löschen von Dateien, oder um den Dateipfad in einem benutzerdefinierten Formular anzuzeigen.

Denken Sie daran, dass Sie bei der Arbeit mit Pfaden und Verzeichnissen die Besonderheiten des Betriebssystems berücksichtigen müssen, auf dem das Programm ausgeführt wird. Unter Windows wird beispielsweise der Dateipfad normalerweise mit Backslashs angegeben (z. B. "С:\Папка\файл .xlsx") und unter macOS mit geraden Schrägstrichen (z. B. "/Ordner/Datei.xlsx").

Daher gibt es in Excel VBA verschiedene Möglichkeiten, Informationen zu Pfaden und Verzeichnissen abzurufen, die bei der Arbeit mit Dateien und Verzeichnissen verwendet werden können. Verwenden Sie integrierte Funktionen, Scripting-Bibliotheksobjekte.Das FileSystemObject und die Eigenschaften des Workbook-Objekts können Sie Pfade und Verzeichnisse in einem VBA-Programm effizient verwalten.

Verzeichnisse in Excel VBA

In der Programmiersprache VBA für Excel gibt es eine Reihe von Methoden und Eigenschaften, mit denen Sie mit Dateisystemverzeichnissen und -pfaden arbeiten können. Dies ist sehr nützlich, da Sie die Arbeit mit Dateien automatisieren, Dateien suchen und filtern, nach Dateien suchen und vieles mehr können.

Eines der Hauptobjekte, die ein Verzeichnis in VBA darstellen, ist ein FileSystemObject aus der Scripting- Bibliothek. Um mit Verzeichnissen zu arbeiten, müssen Sie zunächst eine Instanz dieses Objekts erstellen:

Dim fso As ObjectSet fso = CreateObject("Scripting.FileSystemObject")

Nachdem Sie ein FileSystemObject erstellt haben, können Sie dessen Methoden und Eigenschaften verwenden, um mit Verzeichnissen zu arbeiten:

  • fso.GetFolder(path) - Ruft ein Objekt ab, das ein Verzeichnis im angegebenen Pfad darstellt.
  • fso.GetSpecialFolder(FolderType) - Ruft ein Objekt ab, das ein spezielles Systemverzeichnis darstellt. Zum Beispiel fso.GetSpecialFolder(0) gibt ein Objekt zurück, das das Windows-Systemverzeichnis darstellt.
  • fso.CreateFolder(path) - Erstellt ein neues Verzeichnis unter dem angegebenen Pfad.
  • fso.DeleteFolder(path[, force]) - Löscht das Verzeichnis im angegebenen Pfad. Wenn der Parameter force auf True gesetzt ist, wird das Löschen durchgeführt, auch wenn das Verzeichnis nicht leer ist.
  • fso.GetAbsolutePathName(path) - Ruft einen absoluten Pfad mit einem relativen oder kurzen Dateinamen oder Verzeichnis ab.
  • fso.GetDrive(path) - Ruft ein Objekt ab, das das logische Laufwerk am angegebenen Pfad darstellt.
  • fso.GetParentFolderName(path) - Ruft den Namen des übergeordneten Verzeichnisses für den angegebenen Pfad ab.
  • fso.GetTempName() - Erzeugt einen eindeutigen Namen für eine temporäre Datei.

Sie können die fso-Methode zum Durchforsten von Verzeichnissen verwenden.GetFolder(path) , um ein Verzeichnisobjekt abzurufen und dann den Inhalt mit der Folder-Eigenschaft zu durchlaufen.Dateien und Ordner.Subfolders . Zum Beispiel:

Dim folderPath As StringfolderPath = "C:\Folder"Dim folder As ObjectSet folder = fso.GetFolder(folderPath)Dim file As ObjectFor Each file In folder.Files'работа с файломNext fileDim subfolder As ObjectFor Each subfolder In folder.Subfolders'работа с поддиректориейNext subfolder

Sie können auch die fso-Methode verwenden.BuildPath(path, name), um einen Pfad zu Dateien oder Verzeichnissen zu erstellen, wobei automatisch ein Trennzeichen hinzugefügt wird:

Dim folderPath As StringfolderPath = fso.BuildPath("C:\Folder", "Subfolder")Dim filePath As StringfilePath = fso.BuildPath(folderPath, "file.txt")

In VBA stehen auch Eigenschaften zum Abrufen von Verzeichnisinformationen zur Verfügung:

  • folder.Path - Gibt eine Zeichenfolge mit einem Verzeichnispfad zurück.
  • folder.Name - Gibt den Namen des Verzeichnisses zurück.
  • folder.DateCreated - Gibt das Datum zurück, an dem das Verzeichnis erstellt wurde.
  • folder.DateLastModified - Gibt das Datum zurück, an dem das Verzeichnis zuletzt geändert wurde.
  • folder.Size - Gibt die Größe eines Verzeichnisses in Bytes zurück.
  • folder.Attributes - Gibt die Attribute eines Verzeichnisses zurück.

Das Arbeiten mit Pfaden und Verzeichnissen in Excel VBA vereinfacht die Automatisierung von Dateiverarbeitung, -suche und -filterung erheblich. Mit dem FileSystemObject können Sie Verzeichnisse einfach erstellen, löschen, durchforsten und Informationen darüber abrufen.

Erstellen und Löschen von Verzeichnissen

Für die Arbeit mit Verzeichnissen in Excel VBA gibt es spezielle Methoden, mit denen Sie Verzeichnisse auf Ihrem Computer erstellen und löschen können.

Methode MkDir wird verwendet, um ein neues Verzeichnis zu erstellen. Seine Syntax ist wie folgt:

MkDir "путь_к_директории"

Der folgende Code erstellt beispielsweise ein neues Verzeichnis "Neues Verzeichnis" im aktuellen Verzeichnis:

Sub СоздатьДиректорию()MkDir "Новая Директория"End Sub

Verwenden Sie die Methode, um ein Verzeichnis zu löschen RmDir. Seine Syntax ist wie folgt:

RmDir "путь_к_директории"

Der folgende Code löscht beispielsweise das Verzeichnis "Neues Verzeichnis" im aktuellen Verzeichnis:

Sub УдалитьДиректорию()RmDir "Новая Директория"End Sub

Beachten Sie, dass das Löschen eines Verzeichnisses nur möglich ist, wenn es leer ist. Wenn das Verzeichnis Dateien oder andere Verzeichnisse enthält, müssen Sie diese vor dem Löschen löschen.

Es ist auch eine Überlegung wert, dass das Erstellen und Löschen von Verzeichnissen zu Datenverlust führen kann. Daher sollten Sie bei der Verwendung dieser Methoden vorsichtig sein. Es wird empfohlen, vor dem Ausführen von Verzeichnisoperationen zusätzliche Überprüfungen hinzuzufügen.