AW: Bild wird im kleinem Format runter geladen
21.07.2025 23:28:16
Zwenn
Hallo Daniel,
um Dateien direkt runterzuladen, gibt es die WIndows-API-Funktion URLDownloadToFile. Der Folgende Code wird oben in ein Modul eingefügt. Es sind sowohl die Version für Excel 64 Bit, wie auch für 32 Bit enthalten.
Option Explicit
#If Win64 Then
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As LongPtr, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As LongPtr, ByVal lpfnCB As LongPtr) As Long
#Else
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#End If
Die folgende Sub zeigt die exemplarische Anwendung der Funktion.
Sub BildSpeichern()
Const speicherPfad As String = "E:\" 'anpassen, muss mit \ enden
Const bildName As String = "testBildDownload.jpg"
Const bildURL As String = "https://image.coldtec.ch/104491/p/0/big"
Dim bildGespeichert As Long
bildGespeichert = URLDownloadToFile(0, bildURL, speicherPfad & bildName, 0, 0)
If bildGespeichert = 0 Then
MsgBox "Bild gespeichert"
Else
MsgBox "Bild nicht gespeichert"
End If
End Sub
Wie Du siehst, habe ich vorgesehen anzuzeigen, ob das Bild runtergeladen wurde oder nicht. Spoiler: Das funktioert nicht, denn es wird immer ein Bild runtergeladen. Folgende drei Möglichkeiten habe ich herausgefunden:
Ist die URL richtig geschrieben, wird das erwartete große Bild runtergeladen
Ist die URL nach der Nr. falsch geschrieben, wird die kleine Version des Bildes runtergeladen
Ist die Nr. selbst falsch geschrieben, liefert der WebServer eine Platzhaltergrafik mit der Aufschrift "Bild folgt bald" aus
Wie es sich verhält, wenn andere Fehler in der URL sind habe ich nicht getestet.
Ich empfele die Verwendung der Windows-Api-Funktion. Die ist schlüsselfertig ausgeliefert und bestens von vielen Entwicklern eingesetzt. Ich habe damit millionen von Bildern aus Onlineshops runtergeladen.
Noch eine Anmerkung:
Vermeide die Mischung von Sprachen in Deinen Makros. Du verwendest Deutsch, Englisch und Spanisch, sofern ich es richtig gesehen habe. Für Dich selbst funktioniert das. Aber sobald jemand anders sich Deinen Quellcode anschaut, ist der ziemlich schnell genervt. Genau das hast Du mit dem Hochladen Deiner Mappe aber aktiv nachgefragt ;-)