엑셀 URL 이미지 저장 :: SaveImageFromURL 함수

URL 주소의 이미지를 특정 경로의 파일로 저장하는 SaveImageFromURL 함수 사용법

작성자 :
오빠두엑셀
최종 수정일 : 2021. 08. 06. 16:52
URL 복사
메모 남기기 : (5)

엑셀 URL 이미지 저장 :: SaveImageFromURL 명령문 사용법 총정리

엑셀 SaveImageFromURL 명령문 목차 바로가기
요약

엑셀 SaveImageFromURL 함수는 URL주소의 이미지를 특정 경로의 파일로 저장하는 사용자 함수입니다.

명령문 구문
= SaveImageFromURL ( URL주소, 파일경로 )
사용된 인수 및 변수 알아보기
인수 설명
URL주소
[String]
이미지를 다운로드할 URL 주소입니다.
파일경로
[String]
이미지를 저장할 경로입니다. 폴더경로와 확장자를 포함한 전체 경로를 입력합니다.

예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.


상세 설명

엑셀 SaveImageFromURL 함수는 URL주소에 있는 이미지를 특정 경로의 파일로 저장하는 엑셀 사용자 함수입니다. HTTP 요청을 사용하므로 Windows 엑셀에서만 사용 가능합니다. (Mac 엑셀에서는 사용 불가)

두번째 인수인 파일경로는 폴더경로와 확장자를 포함한 전체 경로를 입력합니다. 파일경로의 확장자는 자유롭게 입력할 수 있습니다. 예를 들어, URL 주소의 그림파일을 ".txt" 형식으로 저장할 수 있지만, 확장자가 다를 경우 일부 실행이 제한될 수 있습니다.

SaveImageFromURL("https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png","C:\구글로고.txt")
'.txt 확장자로 저장은 되지만, 실행은 제한됩니다.

SaveImageFromURL 함수는 결과값으로 숫자를 반환하며, 성공적으로 파일이 저장되면 0을 반환합니다. 그 외 오류가 발생할 경우, 오류 번호를 반환합니다.

오빠두Tip : 대표적으로 폴더 경로가 올바르지 않거나 해당 경로에 쓰기 권한이 없을 경우, SaveImageFromURL 함수는 3004 오류를 반환합니다.

홈페이지에서 제공해드리는 GetFileApplication 함수를 사용하면, 다운받은 이미지 파일의 실행파일을 찾아 바로 실행할 수 있습니다.

실전 사용 예제
  1. 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 "이미지를 성공적으로 다운로드하였습니다."
  2. 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

엑셀 URL 이미지 다운로드, SaveImageFromURL 명령문 동작원리

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
5 3 투표
게시글평점
5 댓글
Inline Feedbacks
모든 댓글 보기
5
0
여러분의 생각을 댓글로 남겨주세요.x