Bildgröße aus den Bildeigenschaften auslesen in Excel
Schritt-für-Schritt-Anleitung
-
Makro erstellen: Öffne Excel und drücke ALT + F11
, um den Visual Basic-Editor zu starten.
-
Neues Modul hinzufügen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen
-> Modul
.
-
Code einfügen: Kopiere den folgenden Code in das Modul:
Sub Bildeigenschaften_abfragen()
Dim objShell As Object, objFolder As Object
Dim varName As Object
Dim Breite As Variant, Höhe As Variant
Dim Name_des_Bildes As Variant
Dim sPath As Variant, sFile As String
Name_des_Bildes = Application.GetOpenFilename( _
"Bilddateien (*.JPG), *.xls, Alle Dateien (*.*), *.*", 1, _
"Bild auswählen...", MultiSelect:=False)
If Name_des_Bildes = False Then Exit Sub
sFile = Dir(Name_des_Bildes)
sPath = Replace(Name_des_Bildes, sFile, "")
sPath = Left(sPath, Len(sPath) - 1)
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(sPath)
For Each varName In objFolder.Items
If varName = sFile Then
Breite = objFolder.GetDetailsOf(varName, 27)
Höhe = objFolder.GetDetailsOf(varName, 28)
Exit For
End If
Next
MsgBox Breite & " , " & Höhe
End Sub
-
Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8
, wähle Bildeigenschaften_abfragen
und klicke auf Ausführen
.
-
Bild auswählen: Ein Dialogfeld öffnet sich, in dem Du das Bild auswählen kannst. Die Breite und Höhe des Bildes werden in einer MessageBox angezeigt.
Häufige Fehler und Lösungen
-
Laufzeitfehler 91: Dieser Fehler tritt auf, wenn die objFolder
-Variable nicht richtig gesetzt ist. Stelle sicher, dass der Pfad korrekt ist und das Bild existiert.
-
Falsches Bildformat: Achte darauf, dass das Bild im richtigen Format (.JPG) vorliegt. Andernfalls wird die Bildgröße nicht korrekt ausgelesen.
-
Variablen nicht definiert: Überprüfe, ob alle Variablen im Code korrekt deklariert sind. Achte besonders auf den Datentyp der Variablen.
Alternative Methoden
Du kannst auch die FileSystemObject
-Bibliothek verwenden, um die Bildeigenschaften auszulesen. Hier ist ein Beispielcode:
Sub Bildeigenschaften_FileSystem()
Dim fso As Object
Dim file As Object
Dim Name_des_Bildes As String
Name_des_Bildes = Application.GetOpenFilename("Bilddateien (*.JPG), *.xls, Alle Dateien (*.*), *.*", 1, "Bild auswählen...", MultiSelect:=False)
If Name_des_Bildes = False Then Exit Sub
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.GetFile(Name_des_Bildes)
MsgBox "Bildgröße: " & file.Size & " Bytes"
End Sub
Praktische Beispiele
-
Bildgröße überprüfen: Du kannst das oben genannte Makro erweitern, um eine Überprüfung der Bildgröße vorzunehmen, bevor das Bild in die Excel-Tabelle eingefügt wird.
-
Erweiterte Bildeigenschaften: Wenn Du weitere Informationen zu den Bildeigenschaften
auslesen möchtest, kannst Du die Indizes in GetDetailsOf
ändern, um zusätzliche Eigenschaften wie Datum der letzten Änderung
zu erhalten.
Tipps für Profis
-
Fehlerbehandlung implementieren: Füge On Error Resume Next
und On Error GoTo 0
ein, um Fehler abzufangen und den Code robuster zu machen.
-
Benutzerdefinierte Dialoge: Anstelle des Standard-Dialogfelds kannst Du eigene Formulare erstellen, um die Benutzererfahrung zu verbessern.
-
Automatisierung: Automatisiere den Prozess, indem Du das Makro so anpasst, dass es automatisch ausgeführt wird, wenn eine bestimmte Aktion in Excel erfolgt (z. B. beim Öffnen der Datei).
FAQ: Häufige Fragen
1. Frage
Wie kann ich die Bildgröße in Pixeln anzeigen?
Die Bildgröße wird standardmäßig in Bytes angezeigt. Du kannst die Breite und Höhe mit den Indizes 27 und 28 auslesen, um die Dimensionen in Pixeln anzuzeigen.
2. Frage
Kann ich auch andere Bildformate einlesen?
Ja, Du kannst den Filter im GetOpenFilename
-Aufruf anpassen, um andere Formate wie PNG oder BMP zu unterstützen. Achte jedoch darauf, die Indizes für die Eigenschaften entsprechend zu ändern.