VBA: Datei aus i-net herunterladen

19/12/2007 - 23:35 von ingu | Report spam
hallo,

ich möchte gerne mit einem Makro eine Datei (beliebiger Typ, z. B. *.gif)
aus dem Internet herunterladen und auf der lokalen Platte abspeichern. Die
URL wird der Methode als String übergeben.

Ich habe lediglich einen Quellcode, mit dem ich Textinformation aus dem
Internet herunterladen und einlesen kann. So sieht die Struktur von meinem
Ansatz dafür aus (vlt. làsst sie sich ja entsprechend abàndern):

***
Private Sub Download(url As String)
Dim xmlhttp As Object
Dim itext As String
On Error Resume Next

Set xmlhttp = CreateObject("Msxml2.XMLHTTP")
xmlhttp.Open "GET", url, False
xmlhttp.Send

Select Case xmlhttp.Status
Case 200 ' OK
itext = xmlhttp.responseText ' HIER BEKOMME ICH JA LEIDER NUR TEXT!
...
Case 404, 12029 ' Not found/Unknow
...
End Select
Set xmlhttp = Nothing
...
End Sub

***

Bin für jede Hilfe dankbar!

VG ingu
 

Lesen sie die antworten

#1 stefan onken
20/12/2007 - 11:32 | Warnen spam
hallo ingu,
teste mal diesen Code:

Public 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

Sub test()
URL =
"http://www.gbiu.de/Hamsterkiste/Sac....jpg"
rc = URLDownloadToFile(0, URL, "C:\tmp.jpg", 0, 0)
If rc > 0 Then MsgBox "Fehler beim downloaden"
End Sub

Ich habe aber nicht getestet, ob das für alle Dateitypen geht.
Weitere Info zB unter
http://www.aboutvb.de/khw/artikel/k...wnload.htm

Gruß
stefan

ingu wrote:
hallo,

ich möchte gerne mit einem Makro eine Datei (beliebiger Typ,
z. B. *.gif) aus dem Internet herunterladen und auf der
lokalen Platte abspeichern. Die URL wird der Methode als
String übergeben.

Ich habe lediglich einen Quellcode, mit dem ich
Textinformation aus dem Internet herunterladen und einlesen
kann. So sieht die Struktur von meinem Ansatz dafür aus (vlt.
làsst sie sich ja entsprechend abàndern):

***
Private Sub Download(url As String)
Dim xmlhttp As Object
Dim itext As String
On Error Resume Next

Set xmlhttp = CreateObject("Msxml2.XMLHTTP")
xmlhttp.Open "GET", url, False
xmlhttp.Send

Select Case xmlhttp.Status
Case 200 ' OK
itext = xmlhttp.responseText ' HIER BEKOMME ICH JA
LEIDER NUR TEXT! ...
Case 404, 12029 ' Not found/Unknow
...
End Select
Set xmlhttp = Nothing
...
End Sub

***

Bin für jede Hilfe dankbar!

VG ingu

Ähnliche fragen