Excel - VBA

URL을 지정하여 File을 Download하기

EGTools 2023. 1. 6. 12:35
728x90

인터넷에 존재하는 파일을 다운로드 하기 위하여 아래와 같은 코드를 사용할 수 있습니다.

다운로드할 대상의 URL과 Download할 Path와 이름이 포함된 FullName을 지정하여 다운로드 합니다.

 

이 기능은 Add-In인 EGTools 추가기능에 자동업데이트 기능을 추가할 때 사용하였습니다.

 

Binary 파일을 ADODB.Stream으로 다운로드 하는 방식입니다.

다운로드가 되면 새로 생성된 파일의 FullName을 반환하고, 실패하면 빈문자열(vbNullString)을 반환합니다.

Function DownloadFromURL(FileUrl As String, NewFullName As String)

    Dim oXMLHTTP As Object, oStream As Object

    On Error GoTo ERROR_EXIT

    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
    oXMLHTTP.Open "GET", FileUrl, False               
    oXMLHTTP.send
    
    If oXMLHTTP.Status = 200 Then
        Set oStream = CreateObject("ADODB.Stream")
        oStream.Open
        oStream.Type = 1
        oStream.Write oXMLHTTP.responseBody
        oStream.SaveToFile NewFullName, 2
        oStream.Close
        DownloadFromURL = NewFullName
    Else
        DownloadFromURL = vbNullString
    End If
    
    GoTo EXIT_RUN

ERROR_EXIT:
    DownloadFromURL = vbNullString

EXIT_RUN:
    Set oXMLHTTP = Nothing
    Set oStream = Nothing
    
End Function

 

728x90