메뉴
실무 위키VBA 코드SaveImageFromURL

SaveImageFromURL

Function

URL 주소의 이미지를 지정한 경로에 파일로 저장하는 VBA 사용자 지정 함수입니다.

SaveImageFromURL 코드 미리보기
구문 = SaveImageFromURL ( URL주소, 파일경로 )
인수구분 형식 설명
URL주소 필수 String
이미지를 다운로드할 URL 주소입니다.
파일경로 필수 String
이미지를 저장할 경로입니다.
폴더경로와 확장자를 포함한 전체 경로를 입력합니다.

마스터 코드

복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요
Module1 · SaveImageFromURL
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 오류를 반환합니다.
댓글 5
5 (3개 평가)
모닝삼겹살
모닝삼겹살 2023.03.05 00:22
안녕하세요 맥사용자입니다. 맥에서는 활용할수 있는 방법이 없을까요? ㅠㅠ 지정한 url의 모든 이미지를 자동을 폴더에 저장하는 방법이 알고 싶습니다.
오빠두엑셀
오빠두엑셀 작성자 2023.03.05 02:23
안녕하세요!
본 명령문에 사용된 XML과 ADO 라이브러리는 윈도우에서만 사용가능한 것으로 알고 있습니다.
대부분의 VBA 라이브러리는 윈도우 기반으로 동작하기 때문에, Mac에서는 제한사항이 많은 편입니다.
놀루
놀루 2023.04.15 18:51
여러 이미지url이 엑셀에 리스팅되어있는데 이 이미지를 순서대로 일괄저장하고 싶습니다. 팟쿤으로는 순서가 계속 뒤바껴서요.. 일괄로도 저장이 가능할까요?
오빠두엑셀
오빠두엑셀 작성자 2023.04.17 02:18
안녕하세요.
네 가능합니다. For 반복문으로 작성하면 됩니다.
코드 작성을 도와드리긴 어려우며, 코딩 기본 작성법은 아래 영상강의를 확인해보시거나 ChatGPT를 통해 확인해보시면 좋을 것 같습니다.
https://www.oppadu.com/%ec%97%91%ec%85%80-live-102%ea%b0%95/
감사합니다.
강민준🤗
강민준🤗 2024.08.11 12:58
좋은 자료 감사합니다.🙇‍♂️
스크랩 완료