Probleme mit GetDetailsOf in Excel VBA
Schritt-für-Schritt-Anleitung
Um die Funktion GetDetailsOf
in Excel VBA zu verwenden und sowohl den Besitzer als auch den Autor von Dateien abzurufen, kannst du folgenden Code verwenden. Dieser Code funktioniert in Excel 2003 und 2007:
Sub GetFileDetails()
Dim objShell As Object, objFolder As Object, objFile As Object
Dim filePath As String, folderPath As String
Dim i As Integer
' Dateipfad anpassen
filePath = "E:\VBA\Excel\Listbox.xls"
folderPath = Left(filePath, InStrRev(filePath, "\"))
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(folderPath)
Set objFile = objFolder.ParseName(Mid(filePath, InStrRev(filePath, "\") + 1))
' Autor auslesen
For i = 0 To 300
If objFolder.GetDetailsOf(, i) = "Autor" Then
MsgBox "Autor: " & objFolder.GetDetailsOf(objFile, i)
Exit For
End If
Next i
' Besitzer auslesen
For i = 0 To 300
If objFolder.GetDetailsOf(, i) = "Besitzer" Then
MsgBox "Besitzer: " & objFolder.GetDetailsOf(objFile, i)
Exit For
End If
Next i
Set objShell = Nothing
End Sub
In diesem Beispiel wird GetDetailsOf
verwendet, um Informationen über die Datei abzurufen. Stelle sicher, dass du den Dateipfad entsprechend anpasst.
Häufige Fehler und Lösungen
Alternative Methoden
Falls du GetDetailsOf
nicht verwenden kannst oder möchtest, kannst du auch PowerShell nutzen, um Dateiinformationen abzurufen. Hier ein einfaches Beispiel:
Get-Item "E:\VBA\Excel\Listbox.xls" | Select-Object Owner, Author
Diese Methode ist besonders nützlich, wenn du mit mehreren Dateien arbeiten möchtest und die Informationen in einer CSV-Datei speichern möchtest.
Praktische Beispiele
Ein weiteres Beispiel für die Verwendung von GetDetailsOf
ist das Abrufen von Dateigrößen. Du kannst den Code wie folgt anpassen:
' Dateigröße auslesen
For i = 0 To 300
If objFolder.GetDetailsOf(, i) = "Größe" Then
MsgBox "Dateigröße: " & objFolder.GetDetailsOf(objFile, i)
Exit For
End If
Next i
Hier wird die Größe der Datei ausgegeben, indem das entsprechende Detail über GetDetailsOf
abgerufen wird.
Tipps für Profis
- Überlege, wie du die Version von Excel abfragen kannst, um den Code je nach Version zu optimieren. Dies kann helfen, Komplikationen bei der Verwendung von
GetDetailsOf
zu vermeiden.
- Nutze die
ParseName
-Methode, um sicherzustellen, dass du die korrekte Datei referenzierst, insbesondere wenn du mit mehreren Dateien arbeitest.
FAQ: Häufige Fragen
1. Kann ich GetDetailsOf
mit Bezeichnungen anstelle von Zahlen verwenden?
Ja, du kannst die Bezeichnungen verwenden, indem du eine Schleife über die verfügbaren Details machst und nach dem gewünschten Namen suchst, wie im obigen Beispiel gezeigt.
2. Gibt es Unterschiede in der Funktionalität zwischen Excel 2003 und 2007?
Ja, es gibt Unterschiede, und einige Details sind möglicherweise nicht in beiden Versionen verfügbar. Daher ist es ratsam, die Version abzufragen und den Code entsprechend anzupassen.