Datei-Eigenschaften
20.11.2013 23:24:11
Dietmar-U
eigentlich möchte ich die Daten des ID3V2-Tags für meine MP3-Dateien in eine Excel-Tabelle einlesen. Die in Excel gegebenen Filtermöglichkeiten gibt es nun mal leider nicht in einer der mir bekannten Player (WinAmp, MediaMonkey). Da das direkte Einlesen des Tag's nach meinem Recherchen nicht so einfach ist, bin ich über die Lösung "Auslesen der Dateieigenschaften" von "K.Rola (aus dem Archiv zu finden über die Suche "ID3V2")" eigentlich erfreut. Aber hier beginnt mein Problem:
Das Tool funktioniert nur mit der Anweisung "Const STRFOLDER = " "". Eine dynamische Zuweisung zu STRFOLDER wird mit Fehlermeldung quittiert. Die dynamische Zuweisung ist mir allerdings wichtig, da das Tool via Funktion (für verschiedene Unterordnerebenen wie Interpret und Album aufgerufen werden soll. Nachstehend die funktionierende und die fehlerhafte Version.
Möglicherweise ist die Lösung recht einfach. Zur Zeit bin ich jedoch etwas genervt, da ich bereits seit Tagen nicht zu Lösung komme. Hier der Code:
Sub Dateieigenschaften_KLAPPT()
Const STRFOLDER = "D:\Music_Q\Cat Stevens\Remember" 'anpassen
Dim I, SPALTE, ZEILE, EIGENSCHAFT, SUCHEN
Cells.ClearContents: SPALTE = 1: ZEILE = 2
Set SUCHEN = CreateObject("Shell.Application").Namespace(STRFOLDER)
For I = 0 To 33: Cells(1, SPALTE + I) = SUCHEN.GetDetailsOf(EIGENSCHAFT, I): Next
For Each EIGENSCHAFT In SUCHEN.Items
For I = 0 To 33
Cells(ZEILE, SPALTE + I) = SUCHEN.GetDetailsOf(EIGENSCHAFT, I)
Next
ZEILE = ZEILE + 1
Next
End Sub
Sub Dateieigenschaften_FEHLER()
Dim STRFOLDER As String: STRFOLDER = "D:\Music_Q\Cat Stevens\Remember" 'anpassen
Dim I, SPALTE, ZEILE, EIGENSCHAFT, SUCHEN
Cells.ClearContents: SPALTE = 1: ZEILE = 2
Set SUCHEN = CreateObject("Shell.Application").Namespace(STRFOLDER)
For I = 0 To 33: Cells(1, SPALTE + I) = SUCHEN.GetDetailsOf(EIGENSCHAFT, I): Next
For Each EIGENSCHAFT In SUCHEN.Items
For I = 0 To 33
Cells(ZEILE, SPALTE + I) = SUCHEN.GetDetailsOf(EIGENSCHAFT, I)
Next
ZEILE = ZEILE + 1
Next
End Sub