Start Hilfe und Support Microsoft Office EXCEL 2010 VBA: Dateiendung eines Dateinamens ermitteln

EXCEL 2010 VBA: Dateiendung eines Dateinamens ermitteln

E-Mail PDF

Die Funktion Dateiendung extrahiert aus einem Dateinamen/Filename die Deiteiendung/Extension

Aufgabenstellung

Für verschiedene Zwecke benötigt man die Dateiendung bzw. die Extension eines Dateinamens. Die folgende Funktion kann in VBA verwendet werden, um diese Aufgabe zu erledigen. Diese Funktion, die hier vorgestellt wird, liefert einen Leerstring zurück wenn der Dateiname auf . endet (z.B. "Datei." bzw. wenn der Dateiname keine Extension/Dateiendung enthält. Lautet der Dateiname z.B. "MeineDatei.txt", liefert die Funktion "txt" zurück, verzichtet also auf das Voranstellen eines Punktes. An die Funktion übergeben wird ein String, der einen Dateinamen enthalten sollte. Dabei kann es sich auch um einen vollständigen Pfad inklusive des Dateinamens handeln (z.B. "C:\MeinOrdner\MeineDatei.txt").

Funktion Dateiendung - Version 1

Function Dateiendung(ByVal vDateiname As String) As String

  Dim sEndung As String
  Dim sEinZeichen As String
  Dim lZaehler As Long
  Dim lLaenge As Long

  lLaenge = Len(vDateiname)
  sEndung = ""  ' Intitialisierung von sEndung

  For lZaehler = lLaenge To 1 Step -1  ' Einzelne Zeichen werden von hinten nach vorne ausgelesen
                                       ' über eine Schleife
    sEinZeichen = Mid(vDateiname, lZaehler, 1)  ' die Mid-Funktion liefert ein Zeichen an der Stelle
                                                ' lZaehler mit der Länge von 1 Character der String-
                                                ' Variablen vDateiname, die an die Funktion
                                                ' übergeben worden ist, gespreichert wird der Character
                                                ' in der Variablen sEinZeichen

   If sEinZeichen = "\" Then  ' Trifft man auf das Zeichen \, enthält der Dateiname
     sEndung = ""             ' keine Dateiendung.
     Exit For
   End If
   If sEinZeichen = "." Then  ' Enthält sEinZeichen einen Punkt, hat man die Dateiendung erwischt,
                               ' in diesem Fall muss nicht weiter gesucht werden, und die Schleife
                               ' wird beendet
      Exit For
    Else
      sEndung = sEinZeichen + sEndung  ' Hier wird die Endung zusammengesetzt, da von hinten nach vorn
                                       ' gearbeitet wird, wird der Character dann auch vor den Ergebnis-
                                       ' string sEndung gehängt. Man spricht von konkatenieren, wenn
                                       ' zwei Strings zusammengefügt werden.
                                       ' Beispiel:
                                       ' Zustand vor der Operation: sEinzeichen = "D"; sEndung = "at"
                                       ' Zustand nach der Operation: sEinzeichen = "D"; sEndung = "Dat"
    End If
  Next lZaehler

  Dateiendung = sEndung  ' Das Ergebnis, also die ermittelte Extension (Dateiendung) wird als
                         ' Rückgabewert an die Funktion Dateiendung übergeben.
End Function

Funktion Dateiendung - Version 2

Herr Rolf Schüpbach, Schweiz, hat eine weitere Umsetzungsalternative zur Verfügung gestellt, die ohne ein Schleifenkonstrukt auskommt.

Function Dateiendung_V2(ByVal vDateiname As String) As String

  ' Dieser Programmcode wurde von Herrn Rolf Schüpbach, Schweiz, entwickelt

  Dim sEndung As String
  Dim iWortlaenge As Integer
  Dim iStellePunkt As Integer

  iWortlaenge = Len(vDateiname)                            ' Anzahl Zeichen des Dateinamens
  iStellePunkt = InStrRev(vDateiname, ".")                 ' Anzahl Zeichen vor dem letzten Punkt
  sEndung = Right(vDateiname, iWortlaenge - iStellePunkt)  ' Dateiendung wird extrahiert

  Dateiendung_V2 = sEndung
End Function

Download des Beispiels

Hier können Sie sich das Beispiel herunterladen.


Zuletzt aktualisiert am Montag, den 04. November 2013 um 18:39 Uhr  


Machen Sie mit

Sie kennen Happerschoß schon als Kind oder seit vielen Jahren. Dann kennen Sie sicherlich auch Geschichten und Anekdoten von Happerschoß und Umgebung. Erzählen Sie, schreiben Sie, berichten Sie. Die Happerschosser werden sich freuen, etwas über ihr Dorf zu erfahren. Melden Sie sich, schreiben Sie eine Mail direkt über den Kontaktbereich oder natürlich auch über Info@happerschoss.net.