Dateien mit VBA-FileSystemObject (MoveFile) verschieben

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Zakarya El Oirzadi

Last updated on August 15, 2022

In diesem Tutorial zeigen wir Ihnen, wie Sie die MoveFile-Methode des FileSystemObjects verwenden können.

Dateien mit VBA FileSystemObject verschieben

Die MoveFile-Methode verschiebt eine oder mehrere Dateien von einem Speicherort zu einem anderen.

VBA-Verweis setzen

Wenn Sie FileSystemObject verwenden wollen, müssen Sie zuerst einen Verweis auf die VB-Skript-Laufzeitbibliothek setzen. Öffnen Sie dazu den Visual Basic Editor (ALT + F11), wählen Sie Verweise im Dropdown-Menü Extras  und aktivieren Sie das Kontrollkästchen „Microsoft Scripting Runtime“.

verweise microsoft scripting runtime

FileSystemObject

Zweitens müssen Sie das FileSystemObject erstellen:

Dim FSO As New FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject") 

Jetzt haben Sie Zugriff auf MoveFile und die anderen FileSystemObject-Methoden.

Eine Datei verschieben

Um eine einzelne Datei zu verschieben, können Sie die einfache Syntax von FSO.MoveFile(Quelle, Ziel) verwenden.

FSO.MoveFile "C:\Quelle\Testdatei.txt", "C:\Ziel\ModTestdatei.txt"

Wie oben erwähnt, müssen Sie zunächst das FileSystemObject erstellen:

Sub FSOMoveFile()
    Dim FSO As New FileSystemObject
    Set FSO = CreateObject("Scripting.FileSystemObject") 

    FSO.MoveFile "C:\Quelle\Testdatei.txt", "C:\Ziel\ModTestdatei.txt"

End Sub

Mehrere Dateien verschieben

Sie können mehrere Dateien mit denselben Namensteilen verschieben:

FSO.MoveFile "C:\Quelle\Testdatei*.txt", "C:\Ziel\"

Oder Sie können mehrere Dateien mit der gleichen Erweiterung verschieben:

FSO.MoveFile "C:\Quelle\ *.xlsx", "C:\Ziel\"

Oder einfach alle Dateien aus einem Ordner:

FSO.MoveFile "C:\Quelle\*", "C:\Ziel\"

Beachten Sie, dass wir hier das Platzhalterzeichen * verwenden.

Anstatt den Platzhalter * zu verwenden, können Sie auch alle Dateien in einem Ordner mit einer For-Each-Schleife verschieben.

Sub FSO_AlleDateienVerschieben ()
    Dim FSO As New FileSystemObject 
    Dim QuellPfad As String
    Dim ZielPfad As String
    Dim DateiInQuellOrdner As Object

    QuellPfad = "C:\Quelle\"   
    ZielPfad = "C:\Ziel\"  
   
    Set FSO = CreateObject("Scripting.FileSystemObject")
    For Each DateiInQuellOrdner In FSO.GetFolder(QuellPfad).Files
    	DateiInQuellOrdner.Move ZielPfad
    Next DateiInQuellOrdner

End Sub

Datei in einen neuen Ordner verschieben

Sie können die Datei(en) auch in einen neu erstellten Ordner verschieben. Fügen Sie dazu den folgenden Befehl ein:

MkDir "C:\Ziel\"

bevor Sie den Zielpfad angeben.

Sub FSO_AlleDateienVerschieben ()
    Dim FSO As New FileSystemObject 
    Dim QuellPfad As String
    Dim ZielPfad As String
    Dim DateiInQuellOrdner As Object

    QuellPfad = "C:\Quelle\"  
    MkDir "C:\Ziel\"
    ZielPfad = "C:\Ziel\" 
    
    Set FSO = CreateObject("Scripting.FileSystemObject")

    For Each DateiInQuellOrdner In FSO.GetFolder(QuellPfad).Files
    	DateiInQuellOrdner.Move ZielPfad
    Next DateiInQuellOrdner

End Sub

Ordner verschieben

Zum Verschieben von Ordnern können Sie die analoge Methode MoveFolder verwenden.

Sub FSO_OrdnerVerschieben()
    Dim FSO As New FileSystemObject
    Set FSO = CreateObject("Scripting.FileSystemObject") 

    FSO.MoveFolder "C:\AlterOrdner", "C:\Ziel\NeuerOrdner"

End Sub
vba-free-addin

Add-In für VBA-Code-Beispiele

Auf alle Code-Beispiele aus unserer Website einfach zugreifen.

Navigieren Sie einfach zum Menü, klicken Sie darauf und der Code wird direkt in Ihr Modul eingefügt. .xlam add-in.

(Keine Installation erforderlich!)

Kostenloser Download

Return to VBA Code Examples