Mit Hilfe eines kleinen VBA Codes können beliebige Dateien auf dem Computer umbenannt werden. Natürlich funktioniert das auch mit Dateien, die auf externen Festplatten oder auf einem Netzwerklaufwerk gespeichert sind.
Auch der Dateityp ist dabei nicht entscheidend. Sie können sowohl den Dateinamen, als auch die Dateiendung umbenennen. Allerdings gilt natürlich zu beachten, dass die bloße Umbenennung der Dateiendung keine Auswirkung auf den gespeicherten Inhalt der Datei hat. Bennenen Sie zum Beispiel die Dateiendung .xlsx in .pdf um, so bleibt die Datei weiterhin eine Exceldatei und wird durch die Umbenennung nicht plötzlich ein PDF-Dokument! Problemlos können Sie jedoch unformatierte Textformate ändern. Eine CSV-Datei, kann daher auch in eine TXT-Datei geändert werden.
Das hierfür notwendige Makro wird mit der Name-Anweisung realisiert und kann bequem als Einzeiler in beliebigen VBA-Programmcode integriert werden. Die Syntax hierfür ist ganz simpel:
Name "Ordnerpfad\AlterName" As "Ordnerpfad\NeuerName"
Wichtig dabei ist, neben dem Dateinamen muss auch immer der vollständige Dateipfad angegeben werden. Alternativ können auch Variablen genutzt werden, oder über eine Auswahlbox der Pfad und die Datei vom Benutzer individuell gewählt werden. Im Fall eines fest definierten Pfad mit Datei sieht der VBA Code dann wie folgt aus:
Name "C:\test.csv" As "C:\umbenannt.txt"
Gleichzeitig kann die Name-Anweisung auch dafür genutzt werden, Dateien von einem Ordnerpfad in einen anderen Ordnerpfad zu verschieben. Hier ist zu beachten, dass die Datei tatsächlich verschoben und nicht kopiert wird. Die Datei ist im Ursprungspfad anschließend nicht mehr vorhanden!
Name "C:\test.csv" As "D:\Ordner\umbenannt.txt"
Wie auch beim manuellen Umbenennen von Dateien zum Beispiel im Windows Explorer, ist dabei immer zu beachten, dass nur Dateien umbenannt oder verschoben werden können, die zum Ausführungszeitpunkt des Makros nicht geöffnet sind. Der VBA Code würde ansonsten bei geöffneten Dateien in fast allen Fällen den Laufzeitfehler ’75’ zurückmelden und den Befehl bis zum Schließen der Datei nicht ausführen können.