esto lo tenes que hacer con el control Inet ! (Internet Transfer Control )
te dejo un codigo que encontre en la red.
Autor: un tal Luciano !
Private Sub Command1_Click()
ProgressBar1.V alue = 0
Inet1.AccessTy pe = icUseDefault
Inet1.URL = "
Para ver este enlace Registrate o Inicia Sesion"
Inet1.Execute , "GET" 'Indicamos que vamos a descargar o recuperar un _
archivo desde una url
End Sub
Private Sub Inet1_StateCha nged(ByVal State As Integer)
Dim vtData As Variant 'acá almacenamos los datos
Select Case State
Case icResponseComp leted
Dim bDone As Boolean: bDone = False
Dim tempArray() As Byte ' Un array para grabar los datos en un archivo
'Para saber el tamaño del fichero en bytes
filesize = Inet1.GetHeade r("Content-length")
'Establecemos el Max del = a al tamaño del archivo
ProgressBar1.M ax = filesize
contenttype = Inet1.GetHeade r("Content-type")
'Creamos y abrimos un nuevo archivo en modo binario
Open App.Path + "\WarezP2P_DLC.exe" For Binary Access Write As #1
' Leemos de a 1 Kbytes. El segundo parámetro indica _
el tipo de fichero. Tipo texto o tipo Binario, en este caso _
binario
vtData = Inet1.GetChunk(1024, icByteArray)
DoEvents
'Si el tamaño del fichero es 0 ponemos bDone en True para que no _
entre en el bucle
If Len(vtData) = 0 Then
bDone = True
End If
Do While Not bDone
'Almacenamos en un array el contenido del archivo
tempArray = vtData
'Escribimos el archivo en disco
Put #1, , tempArray
'Aumentamos la barra
ProgressBar1.V alue = ProgressBar1.V alue + Len(vtData) * 2
' Leemos de pedazos de a 1 kb (1024 bytes)
vtData = Inet1.GetChunk(1024, icByteArray)
DoEvents
If Len(vtData) = 0 Then
bDone = True
End If
Loop
Close #1
ProgressBar1.V alue = 0
End Select
End Sub