VBA Dateiendung (File Extension) ermitteln

VBA - Visual Basic for Application

VBA, auch wenn es schon ein wenig eingestaubt klingt, weil es Visual Basic for Application  gefühlt schon seit Ewigkeiten gibt, erweist bei der Automatisierung im Microsoft Office-Bereich immer noch gute Dienste und ist weitestgehend, bis auf ein paar Ausnahmen, auf- und abwärtskompatibel.

Muss man in irgendeiner Form, in VBA Dateien und Dateipfade verarbeiten, weil man zum Beispiel über Outlook automatisiert Dateianhänge speichern möchte oder Dateien automatisiert drucken möchte, dann tritt schnell der Fall ein, dass man die Dateiendung, auf neudeutsch File Extension auslesen muss.

Meisten braucht man die Dateiendung, um dann in irgendeiner Form über If-Anweisungen oder Select-Case-Anweisung, den richtigen Dateityp für die Weiterverarbeitung auszuwählen.

VBA-Code Dateiendung auslesen

Der nachfolgende Code geht davon aus, dass der Dateiname oder komplette Dateipfad als String/Zeichenkette vorliegt:

Dim strFilePath As String
Dim strFileExtension As String
strFilePath = "C:\users\myname\myfolder\rechnung.pdf"
strFileExtension = Right(strFile, Len(strFilePath ) - InStrRev(strFilePath, "."))

Natürlich kann man hier auch mit Regex-Ausdrücken arbeiten. Aber für viele, die nicht täglich damit zu tun haben, ist die Einarbeitung und der Aufwand zu groß. Meisten braucht man eine schnelle Lösung.

Erläuterungen zum Code

  • InStrRev: Ermittelt die Position eines bestimmten Zeichens in einer Zeichenkette, wobei diese Funktion im Gegensatz zu InStr() von rechts nach links vorgeht; also von hinten an der Zeichenkette beginnt. In unserem Fall wird dasVorkommen des ersten Punktes von hinten gesucht. Also anders gesprochen: Das Vorkommen des letzten Punktes gesucht
  • Len: Diese Funktion bestimmt die Länge einer Zeichenketten; also in unserem Fall die Länge des Strings für den Dateinamen oder Dateipfad
  • Right: Gibt einen Teilstring (Substring) mit einer bestimmten Länge beginnend von rechts einer gegebenen Zeichenkette wieder; in unserem Fall also genau der Textabschnitt, welcher der Dateiendung entspricht. Die Länge des Substring wird berechnet aus der Differenz Gesamtlänge der Zeichenkette und der Position des letzten Vorkommens des Punktes in der Zeichenkette.

Weiterverarbeitung der Dateiendung

Mit der Dateiendung alleine kann man meistens nur wenig anfangen. Deswegen seien hier noch zwei typische Weiterverarbeitungen erwähnt, um den richtigen Dateityp herauszufiltern.

If FileExtension = "pdf" Then
' Mache irgendwas mit der Datei strFilePath
End If

Oder als Select-Case Verarbeitung:

Select Case FileExtension
Case "pdf"
' Mache irgendwas mit der PDF-Datei
Case "xlsx"
' Mache irgendwas mit der Excel-Datei
Case "docx"
' Mache irgendwas mit der Word-Datei
End Select

Bestseller Nr. 1
Bestseller Nr. 2

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert