이 페이지에서
구문
= SaveImageFromURL ( URL주소, 파일경로 )
인수구분
형식 설명
URL주소
필수
String
이미지를 다운로드할 URL 주소입니다.
파일경로
필수
String
이미지를 저장할 경로입니다.
폴더경로와 확장자를 포함한 전체 경로를 입력합니다.
마스터 코드
복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요Function SaveImageFromURL(sURL As String, sPath As String) As Long
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ SaveImageFromURL 함수
'▶ URL 주소의 이미지를 지정한 경로의 파일로 저장합니다.
'▶ 인수 설명
'_____________sURL : 이미지를 다운로드 할 URL 주소입니다.
'_____________sPath : 이미지를 저장할 경로입니다. 폴더 경로와 확장자를 포함한 전체 경로를 입력합니다.
'▶ 사용 예제
'SaveImageFromURL "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png","C:\구글로고.png"
'##############################################################
Dim objHTTP As Object
Dim objStream As Object
Dim sHTML As Variant
Const adTypeBinary As Long = 1
Const adSaveCreateOverWrite As Long = 2
If Left(sURL, 4) <> "http" Then sURL = "http://" & sURL
Set objHTTP = CreateObject("MSXML2.XMLHTTP.6.0")
Set objStream = CreateObject("ADODB.Stream")
objStream.Type = adTypeBinary
On Error GoTo EH:
With objHTTP
.Open "GET", sURL, sPath
.Send
End With
If objHTTP.Status = 200 Then
sHTML = objHTTP.responsebody
With objStream
.Open
.Write sHTML
.SaveToFile sPath, adSaveCreateOverWrite
.Close
End With
Else
GoTo EH:
End If
SaveImageFromURL = 0
Exit Function
EH:
SaveImageFromURL = Err.Number
End Function
활용 예제
URL 주소 이미지를 C드라이브에 다운로드
Dim i As Long
i = SaveImageFromURL("https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png","C:\구글로고.png")
If i = 0 Then MsgBox "이미지를 성공적으로 다운로드하였습니다."
URL 주소에서 이미지 다운로드 후 실행하기
Dim i As Long
Dim sURL As String : sURL = "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"
Dim sPath as String: sPath = "C:\구글로고.png"
i = SaveImageFromURL(sURL, sPath)
If i = 0 Then Shell GetFileApplication(sPath) & " " & sPath
안내사항
HTTP 요청을 사용하므로 Windows 엑셀에서만 사용할 수 있습니다.
파일이 정상적으로 저장되면 0을, 그 외에는 오류 번호를 반환합니다.
폴더 경로가 올바르지 않거나 해당 경로에 쓰기 권한이 없을 경우 3004 오류를 반환합니다.
본 명령문에 사용된 XML과 ADO 라이브러리는 윈도우에서만 사용가능한 것으로 알고 있습니다.
대부분의 VBA 라이브러리는 윈도우 기반으로 동작하기 때문에, Mac에서는 제한사항이 많은 편입니다.
네 가능합니다. For 반복문으로 작성하면 됩니다.
코드 작성을 도와드리긴 어려우며, 코딩 기본 작성법은 아래 영상강의를 확인해보시거나 ChatGPT를 통해 확인해보시면 좋을 것 같습니다.
https://www.oppadu.com/%ec%97%91%ec%85%80-live-102%ea%b0%95/
감사합니다.