Si quieres podes usar la API
URLDownloadToFile, es muy facil. Aca te dejo una funcion
En un modulo:
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
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Function BajarArchivo(ByVal URL As String, ByVal LocalFilename As String, Optional ByVal EXE As Boolean) As Boolean
Dim Ret As Long
Ret = URLDownloadToFile(0, URL, LocalFilename, 0, 0) 'bajas el archivo...
If Ret = 0 Then ' si se bajo correctamente
If EXE = True Then ShellExecute 0, "", LocalFilename, "", "", 0 'lo ejecutamos (esto es opcional)
End If
BajarArchivo = Ret 'devolvemos el resultado de la funcion (TRUE si hubo problemas)
End Function
Para usarla seria asi:
BajarArchivo("http://www.world-cs.com.ar/amd.jpg", "C:\asd.jpg", True)
Si te devuelve False es pq no hubo problemas, sino es q no se pudo bajar el archivo (ya sea por URL invlaida o porque indicaste mal la ruta local).
Espero que te sirva, slaudos.-