Aufnahmedatum einer JPG-Datei ermitteln und ändern
Schritt-für-Schritt-Anleitung
-
VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
-
Neues Modul erstellen: Rechtsklicke im Projektfenster auf "VBAProject (Deine Arbeitsmappe)" und wähle "Einfügen" > "Modul".
-
Code einfügen: Kopiere den folgenden Code in das Modul:
Sub ShowDimensions()
Dim objShell As Object
Dim objFolder As Object
Dim objFile As Object
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("C:\Eigene Bilder\")
For Each objFile In objFolder.Items
Debug.Print objFolder.GetDetailsOf(objFile, 25) ' 25 steht für das Aufnahmedatum
Next
End Sub
-
Pfad anpassen: Stelle sicher, dass der Pfad zum Ordner mit deinen JPG-Dateien korrekt ist.
-
Makro ausführen: Führe das Makro aus, um das Aufnahmedatum der Bilder im Debug-Fenster anzuzeigen.
Häufige Fehler und Lösungen
- Fehlermeldung: "Blockvariable oder with-Blockvariable nicht festgelegt": Überprüfe, ob der angegebene Ordnerpfad richtig ist und ob der Zugriff auf die Dateien möglich ist.
- Kein Aufnahmedatum angezeigt: Stelle sicher, dass die Bilder tatsächlich ein Aufnahmedatum im EXIF-Datenformat besitzen.
Alternative Methoden
- Software nutzen: Verwende Programme wie Pixafe, um Bildeigenschaften auszulesen, ohne den Umweg über Excel zu gehen.
- ExifTool verwenden: Ein leistungsfähiges Kommandozeilen-Tool, das EXIF-Daten aus JPG-Dateien auslesen und ändern kann.
Praktische Beispiele
Hier ist ein Beispiel für ein Makro, das das Aufnahmedatum im Dateinamen speichert:
Sub bilder_umbenennen()
Dim objShell As Object, objFolder As Object
Dim BrowseDir, varName, index As Integer, k As Integer
Dim strB As String, strName As String
Set objShell = CreateObject("Shell.Application")
Set BrowseDir = objShell.BrowseForFolder(0, "Ordner auswählen", &H1000, 17)
If Not BrowseDir Is Nothing Then
Set objFolder = objShell.Namespace(BrowseDir.items().Item().Path)
For k = 1 To 300
If objFolder.GetDetailsOf(, k) = "Aufnahmedatum" Then
index = k: Exit For
End If
Next
For Each varName In objFolder.items
If Right(LCase(varName.Path), 3) = "jpg" Then
For i = 1 To Len(objFolder.GetDetailsOf(varName, index))
strB = Mid(objFolder.GetDetailsOf(varName, index), i, 1)
If strB = " " Then Exit For
If IsNumeric(strB) Or strB = "." Then
strName = strName & Mid(objFolder.GetDetailsOf(varName, index), i, 1)
End If
Next
varName.Name = varName & "_aufgenommen_am_" & Replace(strName, ".", "_")
strName = ""
End If
Next
Set objFolder = Nothing
End If
Set objShell = Nothing
End Sub
Tipps für Profis
- Sicherung der Dateien: Bevor Du das Skript zur Umbenennung verwendest, erstelle eine Sicherungskopie der JPG-Dateien, um Datenverlust zu vermeiden.
- Zusätzliche Eigenschaften: Du kannst auch andere Bildeigenschaften wie "Kameramodell" oder "Belichtungszeit" abfragen, indem Du den entsprechenden Index in der
GetDetailsOf-Methode änderst.
FAQ: Häufige Fragen
1. Was ist eine JPG-Datei?
Eine JPG-Datei ist ein beliebtes Bildformat, das zur Speicherung von digitalen Bildern verwendet wird. Es nutzt eine verlustbehaftete Kompression, um die Dateigröße zu reduzieren.
2. Wie kann ich das Aufnahmedatum einer JPG-Datei ändern?
Du kannst das Aufnahmedatum nicht direkt ändern, aber Du kannst den Dateinamen anpassen, um das Datum zu reflektieren, indem Du ein VBA-Skript verwendest, wie im oben genannten Beispiel.