Deze zelfstudie laat zien hoe u de MoveFile-methode van het FileSystemObject gebruikt.
Verplaats bestanden met VBA FileSystemObject
De methode MoveFile verplaatst een of meer bestanden van de ene naar de andere locatie.
VBA-referentie instellen
Ten eerste, wanneer u FileSystemObjects gebruikt, moet u mogelijk een verwijzing naar de runtime-bibliotheek van het VB-script instellen: open de Visual Basic Editor (ALT+F11), selecteer Extra > Referenties in het vervolgkeuzemenu en vink het selectievakje van 'Microsoft Scripting Runtime'.
BestandssysteemObject
Ten tweede moet u het FileSystemObject maken:
12 | Dim FSO als nieuw bestandssysteemobjectStel FSO = CreateObject ("Scripting.FileSystemObject") in |
Nu hebt u toegang tot MoveFile en de andere FileSystemObject-methoden.
VBA-programmering | Code Generator werkt voor u!
Eén bestand verplaatsen
Om een enkel bestand te verplaatsen, kunt u de eenvoudige syntaxis van FSO.MoveFile( source, destination ) gebruiken.
1 | FSO.MoveFile "C:\Src\TestFile.txt", "C:\Dst\ModTestFile.txt" |
Zoals hierboven vermeld, moet u eerst het FileSystemObject maken:
1234567 | Sub FSOMoveFile()Dim FSO als nieuw bestandssysteemobjectStel FSO = CreateObject ("Scripting.FileSystemObject") inFSO.MoveFile "C:\Src\TestFile.txt", "C:\Dst\ModTestFile.txt"Einde sub |
Meerdere bestanden verplaatsen
U kunt meerdere bestanden met delen met dezelfde naam verplaatsen:
1 | FSO.MoveFile "C:\Src\TestFile*.txt", "C:\Dst\" |
Of u kunt meerdere bestanden met dezelfde extensie verplaatsen:
1 | FSO.MoveFile "C:\Src\ *.xlsx", "C:\Dst\" |
Of gewoon alle bestanden uit een map:
1 | FSO.MoveFile "C:\Src\*", "C:\Dst\" |
Let op, hier maken we gebruik van het * jokerteken.
In plaats van het * jokerteken te gebruiken, kunt u alle bestanden in een map verplaatsen met een For Each-lus.
12345678910111213141516 | Sub FSOMoveAllFiles ()Dim FSO als nieuw bestandssysteemobjectDim van pad als stringDim ToPath As StringDim FileInFromFolder als objectFromPath = "C:\Src\"ToPath = "C:\Dst\"Stel FSO = CreateObject ("Scripting.FileSystemObject") inVoor elke FileInFromFolder in FSO.GetFolder(FromPath).FilesFileInFromFolder.Move ToPathVolgende BestandInFromFolderEinde sub |
Verplaats bestand naar een nieuwe map
U kunt de bestanden ook naar een nieuw gemaakte map verplaatsen. Voeg hiervoor het commando . toe
1 | MkDir "C:\Dst\" |
voordat u het bestemmingspad aangeeft.
1234567891011121314151617 | Sub FSOMoveAllFiles ()Dim FSO als nieuw bestandssysteemobjectDim van pad als stringDim ToPath As StringDim FileInFromFolder als objectFromPath = "C:\Src\"MkDir "C:\Dst\"ToPath = "C:\Dst\"Stel FSO = CreateObject ("Scripting.FileSystemObject") inVoor elke FileInFromFolder in FSO.GetFolder(FromPath).FilesFileInFromFolder.Move ToPathVolgende BestandInFromFolderEinde sub |
Moe van het zoeken naar voorbeelden van VBA-codes? Probeer AutoMacro!
Mappen verplaatsen
Voor het verplaatsen van mappen kunt u de analoge methode MoveFolder gebruiken.
1234567 | Sub FSOMoveFolder()Dim FSO als nieuw bestandssysteemobjectStel FSO = CreateObject ("Scripting.FileSystemObject") inFSO.MoveFolder "C:\OldFolder", "C:\Dst\NewFolder"Einde sub |