엑셀 URL 이미지 저장 :: SaveImageFromURL 명령문 사용법 총정리
엑셀 SaveImageFromURL 명령문 목차 바로가기
요약
엑셀 SaveImageFromURL 함수는 URL주소의 이미지를 특정 경로의 파일로 저장하는 사용자 함수입니다.
명령문 구문
= SaveImageFromURL ( URL주소, 파일경로 )
사용된 인수 및 변수 알아보기
인수 | 설명 |
URL주소 [String] |
이미지를 다운로드할 URL 주소입니다. |
파일경로 [String] |
이미지를 저장할 경로입니다. 폴더경로와 확장자를 포함한 전체 경로를 입력합니다. |
예제파일 다운로드
오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.
- [엑셀VBA함수] SaveImageFromURL 함수예제파일
상세 설명
엑셀 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 함수를 사용하면, 다운받은 이미지 파일의 실행파일을 찾아 바로 실행할 수 있습니다.
실전 사용 예제
- 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
엑셀 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
- URL 주소 이미지를 C드라이브에 다운로드