Aqui vai uma versão mais genérica do post anterior, para download de arquivos via Excel:
Sub DownloadEUnzip()
'Declaração de variáveis
Dim FSO, oApp As Object
Dim objHttp, DefPath, Arquivo, aUrl, aPasta As String
Dim Dados() As Byte
Dim Fname As Variant
Dim FileNameFolder As Variant
Dim iFileNumber As Long
'Parâmetros iniciais (personalizáveis)
aUrl = "http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_lotfac.zip"
aPasta = "C:\loteria\temp\"
Arquivo = aPasta & "D_lotfac.zip"
'Download do Arquivo
Set objHttp = CreateObject("MSXML2.ServerXMLHTTP")
objHttp.Open "GET", aUrl, False
objHttp.Send
If objHttp.Status = "200" Then
Dados = objHttp.ResponseBody
iFileNumber = FreeFile
Open Arquivo For Binary Access Write As #iFileNumber
Put #iFileNumber, 1, Dados
Close #iFileNumber
End If
End Sub