Met behulp van de onderstaande procedure kunnen tekens in de bestandsnamen bulksgewijs vervangen worden. Deze procedure gaat opzoek naar alle bestanden in alle relatieve submappen ten opzichte van de locatie van deze werkmap.
In het bovenstaande voorbeeld is er gezocht naar het teken "-" en vervangen door het teken "_".
'----------------------------------------------------------------------------------------------------------------------- ' Auteur : pascalterheege.nl ' Datum : 23-1-2016 ' Object : modBestand ' Doel : bestandsnamen vervangen in relatieve submappen t.o.v. de locatie van deze werkmap ' Verwijzing : Microsoft Scripting Runtime ' Bron : '----------------------------------------------------------------------------------------------------------------------- Option Explicit Sub vervangBestandsnaam() ' Variabelen declareren Dim fso As New FileSystemObject Dim fld As Folder Dim sfld As Folder Dim f As File Dim strZoekenNaar As String Dim strVervangenDoor As String Dim strBestandOud As String Dim strBestandNieuw As String Dim r As Integer ' Zoeken en vervangen initialiseren strZoekenNaar = InputBox("Zoeken naar?", , "-") strVervangenDoor = InputBox("Vervangen door?", , "_") ' Hoofdmap initialiseren Set fld = fso.GetFolder(ActiveWorkbook.Path) r = 2 ' Itereren door submappen van hoofdmap For Each sfld In fld.SubFolders ' Itereren door bestanden For Each f In sfld.Files ' Huidige bestandsnaam strBestandOud = f.Name ' Nieuwe bestandsnaam strBestandNieuw = Replace(f.Name, strZoekenNaar, strVervangenDoor) ' Als de bestandsnamen afwijken dan pas aanpassen! If strBestandOud = strBestandNieuw Then ' Bestand verplaatsen met nieuwe bestandsnaam fso.MoveFile sfld.Path & Application.PathSeparator & strBestandOud, _ sfld.Path & Application.PathSeparator & strBestandNieuw ' Logbestand Cells(r, 1).Value = r - 1 Cells(r, 2).Value = sfld.Name Cells(r, 3).Value = strBestandOud Cells(r, 4).Value = strBestandNieuw r = r + 1 End If Next f Next sfld End Sub
Download hier het oefenbestand.