Pfad mit VBA auslesen
Schritt-für-Schritt-Anleitung
Um den Pfad einer Datei in Excel mit VBA auszulesen, kannst Du die folgende Schritt-für-Schritt-Anleitung befolgen:
-
Öffne den VBA-Editor: Drücke ALT + F11 in Excel.
-
Füge ein neues Modul hinzu: Klicke auf Einfügen und wähle Modul.
-
Kopiere den folgenden Code in das Modul:
Sub PfadAuslesen()
Dim strPfad As String
strPfad = Application.GetOpenFilename()
If strPfad <> "False" Then
strPfad = Left(strPfad, InStrRev(strPfad, "\"))
MsgBox "Der Pfad der Datei ist: " & strPfad
Else
MsgBox "Keine Datei ausgewählt."
End If
End Sub
-
Führe das Makro aus: Drücke F5 oder gehe über Run > Run Sub/UserForm.
Nun solltest Du den Pfad der ausgewählten Datei als Nachricht sehen.
Häufige Fehler und Lösungen
Alternative Methoden
Falls Du nach einer alternativen Methode suchst, um den Speicherort auszulesen, kannst Du die folgende Funktion verwenden, die es Dir ermöglicht, einen Ordner auszuwählen:
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, _
ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim Path As String
Dim R As Long, x As Long, pos As Integer
bInfo.pidlRoot = 0
If IsMissing(Msg) Then
bInfo.lpszTitle = "Wählen Sie bitte einen Ordner aus."
Else
bInfo.lpszTitle = Msg
End If
bInfo.ulFlags = &H1
x = SHBrowseForFolder(bInfo)
Path = Space$(512)
R = SHGetPathFromIDList(ByVal x, ByVal Path)
If R Then
pos = InStr(Path, Chr$(0))
GetDirectory = Left(Path, pos - 1)
Else
GetDirectory = ""
End If
End Function
Praktische Beispiele
Hier sind einige praktische Beispiele, wie Du den aktuellen Pfad oder den Pfad der aktuellen Datei auslesen kannst:
-
Aktueller Pfad der Datei auslesen:
Sub AktuellerPfad()
MsgBox "Der aktuelle Pfad ist: " & ThisWorkbook.Path
End Sub
-
Pfad einer bestimmten Datei auslesen:
Sub DateipfadAuslesen()
Dim dateiPfad As String
dateiPfad = ThisWorkbook.FullName
MsgBox "Der Pfad der aktuellen Datei ist: " & dateiPfad
End Sub
Tipps für Profis
- Verwende
ThisWorkbook.FullName, um den vollständigen Pfad der aktuellen Datei zu erhalten.
- Wenn Du den Speicherort einer Datei häufig benötigst, speichere den Pfad in einer globalen Variablen.
- Du kannst auch die Funktion
Application.CurrentWorkbook.Path nutzen, um den Pfad der Arbeitsmappe abzufragen.
FAQ: Häufige Fragen
1. Wie kann ich den Pfad auslesen, ohne die Datei auszuwählen?
Um den Pfad der aktuellen Datei auszulesen, benutze ThisWorkbook.Path.
2. Gibt es eine Möglichkeit, den Pfad direkt in eine Zelle zu schreiben?
Ja, Du kannst den Pfad in eine Zelle schreiben, indem Du folgenden Code verwendest:
Range("A1").Value = ThisWorkbook.Path
3. Kann ich den Pfad auch ohne VBA abfragen?
Ja, Du kannst den Pfad der aktuellen Datei in Excel über die Funktion =CELL("filename") abfragen, allerdings erhältst Du dann auch den Dateinamen.