Excel VBA – Pfad und Dateinamen mit Funktionen InStrRev, Left und Mid trennen

Pfad und Dateinamen mit Funktionen InStrRev, Left und Mid trennen

Dieser Beitrag ist ein Teil der VBA Grundlagen Serie.
In diesem Beitrag zeige ich am Beispiel eines Dateipfades weitere Funktionen für Zeichenketten (Strings). In diesem Beispiel wollen wir den Dateipfad in den Dateinamen und den Pfad zerlegen.

111 VBA Makros die Ihr Leben leichter machen. Egal ob Sie Einsteiger oder fortgeschrittener Anwender sind – in diesem Buch finden Sie Lösungen für Ihre alltäglichen Aufgaben. Keine Vorkenntnisse notwendig.

Gehen Sie zunächst mit ALT+F11 in die Entwicklungsumgebung und fügen Sie ein neues Modul ein. Als nächstes definieren wir die benötigten Variablen.

Sub StringZerlegen()
Dim intPos As Integer
Dim strPfad As String
Dim strDatei As String

End Sub

Nun ermitteln wir mit der Funktion InStrRev das erste Backslash \ im kompletten Dateipfad ActiveWorkbook.FullName vom Ende gesehen.

Sub StringZerlegen()
Dim intPos As Integer
Dim strPfad As String
Dim strDatei As String

intPos = InStrRev(ActiveWorkbook.FullName, "\")
End Sub

Die Zeichenkette rechts von dieser Position ist der Dateiname und die Zeichenkette links davon entspricht dem Pfad.
Fangen wir mit dem Pfad an. Diesen können wir mit der Funktion Left ermitteln. Diese gibt die Zeichenkette zurück, die eine bestimmte Anzahl von Zeichen ab dem ersten (linken) Zeichen einer Zeichenfolge enthält. Wir schreiben also die gesamte Zeichenkette links von der Position des Backslashes in die Variable strPfad.

Sub StringZerlegen()
Dim intPos As Integer
Dim strPfad As String
Dim strDatei As String

intPos = InStrRev(ActiveWorkbook.FullName, "\")
strPfad = Left(ActiveWorkbook.FullName, intPos)

End Sub

Unternehmensplanung mit SAP BPC

111 VBA Makros die Ihr Leben leichter machen

Wollen Sie Ihre langweiligen Routineaufgaben loswerden? Möchten Sie Excel an Ihre Bedürfnisse anpassen, Berechnungen automatisieren, eigene Dialogfelder erstellen und vieles mehr? Dieses Buch zeigt Ihnen, wie Sie Ihre Aufgaben schnell und einfach mit VBA erledigen.

Die Funktion Right funktioniert analog. Daher können wir diese hier nicht nutzen. Um den Dateinamen zu bekommen greifen wir auf die Funktion Mid zurück. Damit geben wir die gesamte Zeichenkette ab einer bestimmten Position aus. Da das Backslash nicht zum Dateinamen gehört, erhöhen wir die Variable intPos um 1.
Anschließend geben wir das Ergebnis mit Debug.Print im Direktbereich aus.

Sub StringZerlegen()
Dim intPos As Integer
Dim strPfad As String
Dim strDatei As String

intPos = InStrRev(ActiveWorkbook.FullName, "\")
strPfad = Left(ActiveWorkbook.FullName, intPos)
strDatei = Mid(ActiveWorkbook.FullName, intPos + 1)

Debug.Print strPfad
Debug.Print strDatei
End Sub
VBA String zerlegen

Ergebnis

Die Beispiel Excel Datei mit dem sofort einsetzbaren Makro und 111+ andere Makros, die Ihr Leben leichter machen, finden Sie hier.

Beeindrucke deinen Chef mit coolen Excel Tricks!

  • Lasse dich von deinen Kollegen nicht abhängen!
  • Spare Zeit und nutze diese für angenehmere Dinge
  • Steigere deine Produktivität und Effizienz
  • Es ist leicht - In meinem Newsletter gebe ich Schritt für Schritt Anleitungen die jeder versteht
  • Bei der Anmeldung zu meinem Newsletter erhälst du das Buch „Excel Tricks die deinen Chef beeindrucken“ als Willkommensgeschenk.
20 Excel Tricks

Jetzt anfordern!

* Pflichtfeld
 
Kein SPAM. 100% sicher.

Quellen und weiterführende Literatur:
Bernd Held – VBA mit Excel: Das umfassende Handbuch

Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.

2 Kommentare
  1. Martin
    Martin sagte:

    Ich habe ein ähnliches Problem, allerdings genau anders herum. Ich möchte in einem Makro von excel aus dem Wert einer Zufallsvariablen eine dazu passende Datei aufrufen (es geht um einen Vokabeltrainer). Wenn meine Variable z. B. den Wert 25 ausgibt, soll die Datei „25.wav“ aus einem konkreten Ordner ausgewählt werden, die eine konkrete Vokabel zum Hören bringt. Geht das?

    Antworten

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.