오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴

엑셀 웹 이미지 삽입 :: InsertWebImage 명령문

웹 이미지를 시트 위로 삽입하는 InsertWebImage 명령문의 사용법 및 동작원리를 살펴봅니다.

작성자 :
오빠두엑셀
최종 수정일 : 2023. 04. 24. 12:09
URL 복사
메모 남기기 : (14)

엑셀 웹 이미지 삽입 :: InsertWebImage 명령문 사용법 총정리

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

온라인 상의 이미지를 엑셀 시트위로 삽입하는 사용자 지정 함수입니다.

명령문 구문
= InsertWebImage ( 셀, URL링크, [너비], [높이] )
사용된 인수 및 변수 알아보기
인수 설명

[Range]
웹 이미지를 삽입할 셀 입니다.
URL링크
[String]
웹 이미지의 URL 주소 입니다.
너비
[Double, 선택인수]
이미지의 너비를 point 단위로 지정합니다. 기본값은 셀의 너비입니다.
높이
[Double, 선택인수]
이미지의 높이를 point 단위로 지정합니다. 기본값은 셀의 높이입니다.

예제파일 다운로드

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


상세 설명

엑셀 InsertWebImage 함수는 웹 이미지를 엑셀 시트 위로 삽입하는 엑셀 사용자 지정 함수입니다. 최근 사용되는 대부분의 브라우저 (크롬(Chrome), 엣지(Edge), 파이어폭스(FireFox) 등..)은 끌어서놓기 (Drag&Drop) 으로 웹 이미지를 손쉽게 삽입할 수 있습니다.

하지만 셀 크기에 맞춰 이미지를 삽입하거나 특정 URL의 이미지를 반복하여 삽입해야 할 경우 InserWebImage 함수로 업무의 상당부분을 자동화 할 수 있습니다.

실전 사용 예제
  1. 특정 URL 이미지를 시트 A1셀에 삽입하기
    InsertWebImage Sheet1.Range("A1"),"https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"
    ' 구글 로고 이미지를 A1셀에 삽입합니다.
  2. 특정 URL 이미지를 가로너비/세로높이를 지정하여 삽입하기
    InsertWebImage Sheet1.Range("A1"),"https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png",100,100
    ' 구글 로고 이미지를 가로/세로 100point의 정사각형으로 삽입합니다.

엑셀 온라인 이미지 삽입, InsertWebImage 명령문 동작원리

InsertWebImage 명령문 전체 코드
Sub InsertWebImage(targetRng As Range, ImgLink As String, Optional imgWidth As Double, Optional imgHeight As Double)
 
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ InsertWebImage 함수
'▶ 웹 이미지를 셀 위에 삽입합니다.
'▶ 인수 설명
'_____________targetRng                              : 이미지를 삽입할 셀입니다.
'_____________imgLink                                 : 삽입할 이미지 링크입니다.
'_____________imgWidth                             : 이미지 너비입니다. 기본값은 셀의 너비입니다. (선택인수)
'_____________imgHeight                            : 이미지 높이입니다. 기본값은 셀의 높이입니다. (선택인수)
'▶ 사용 예제
'InsertWebImage sheet1.Range("A1"),"https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"
'###############################################################
 
Dim WS As Worksheet
Dim shp As Shape
Dim W As Double: Dim H As Double
 
Set WS = targetRng.Parent
If imgWidth > 0 Then W = imgWidth Else W = targetRng.Width - 6
If imgHeight > 0 Then H = imgHeight Else H = targetRng.Height - 6
 
Set shp = WS.Shapes.AddPicture(ImgLink, msoFalse, msoTrue, targetRng.Left + 3, targetRng.Top + 3, W, H)
 
End Sub
명령문 동작원리 단계별 알아보기
  1. 변수를 선언합니다.
    Dim WS As Worksheet
    Dim shp As Shape
    Dim W As Double: Dim H As Double
     
    Set WS = targetRng.Parent
  2. 이미지 너비 및 높이를 설정합니다.
    If IsMissing(imgWidth) > 0 Then W = imgWidth Else W = targetRng.Width - 6
    If IsMissing(imgHeight) > 0 Then H = imgHeight Else H = targetRng.Height - 6
  3. 엑셀 웹 이미지 삽입 후 명령문을 종료합니다.
    Set shp = WS.Shapes.AddPicture(ImgLink, msoFalse, msoTrue, targetRng.Left + 3, targetRng.Top + 3, W, H)
댓글 14
4 (5개 평가)
신호등
신호등 2022.05.12 14:44
어떻게 쓰는건가요?
웹 트롤링
웹 트롤링 2022.12.22 12:09
이미지 넣는거까진 했는데 여기다 하이퍼링크도 달수있는 방법 이 있나요??
오빠두엑셀
오빠두엑셀 작성자 2022.12.27 16:52
안녕하세요.
네 가능합니다.
아래와 같이 코드를 사용해보세요.
With ActiveSheet
.Hyperlinks.Add Anchor:=.Shapes("그림명"), Address:="링크"
End With
https://stackoverflow.com/questions/43466649/vba-add-hyperlink-to-a-picture
자세한 내용은 위 링크를 참고해보세요.
웹 트롤링
웹 트롤링 2022.12.28 15:42
친절한 설명 감사합니다.

Sub InsertWebImage(targetRng As Range, ImgLink As String, Optional imgWidth As Double, Optional imgHeight As Double)
여기구문에 넣는건가요? 아니면 본문 구문
InsertWebImage Sheet1.Range("B4"), A
이 밑에 넣는건가요?
오빠두엑셀
오빠두엑셀 작성자 2022.12.28 20:47
안녕하세요.
만약 기존 코드에 그대로 사용하려면
Set shp = ... 코드 밑에 작성하면 됩니다.
With ActiveSheet
.Hyperlinks.Add Anchor:=.Shapes(shp.Name), Address:="링크"
End With
를 추가해보세요.
링크를 동적으로 바꾸는건 상황에따라 다르기 때문에 방법은 직접 모색하셔야 합니다.
웹 트롤링
웹 트롤링 2022.12.29 11:28
오 그러면 한열에 링크를 넣고 가려놓은다음에
With ActiveSheet
.Hyperlinks.Add Anchor:=.Shapes(shp.Name), Address:=Range("A1")
End With

음... 이렇게... 가능할까요?
오빠두엑셀
오빠두엑셀 작성자 2022.12.30 19:26
네 가능합니다.
With ActiveSheet
.Hyperlinks.Add Anchor:=.Shapes(shp.Name), Address:=.Range("A1").Value
End With
이렇게 사용해보세요.
웹 트롤링
웹 트롤링 2022.12.31 17:34
친절한 설명 감사합니다. 웹 크롤링 입문한지 한달 안됬는데 너무 재미있네요
원조백수
원조백수 2023.04.22 13:41
If IsMissing(imgWidth) > 0 Then W = imgWidth Else W = targetRng.Width - 6
If IsMissing(imgHeight) > 0 Then H = imgHeight Else H = targetRng.Height - 6
IF 문에서 이미지 크기를 지정하면 이미지 크기를 쓰고 없으면 셀 크기를 쓰는 의도로 보이는데, 내용은 반대로 되어 있습니다.
Optional imgWidth As Double 과 같이 Double로 형식지정을 하셨기 때문에 값이 기본값으로 0이 설정되어 버려서 IsMissing(imgWidth)은 인수를 지정하지 않아도 항상 False가 됩니다.
즉, 위의 코드로는 이미지 크기를 지정하든 지정하지 않든 모두 셀 크기에 따르게 됩니다.
오빠두엑셀
오빠두엑셀 작성자 2023.04.24 12:08
안녕하세요.
네 확인해보니 IsMissing과 >0 이 같이 사용되어있어 방금 수정하였습니다!
말씀하신대로 IsMissing은 빼고 사용하는 것이 맞습니다. 확인해주셔서 감사합니다.
원조백수
원조백수 2023.04.24 13:26
그러시다면, 본문의 설명 부분도 수정을 해주시면 좋겠습니다.
부린이쥬
부린이쥬 2023.05.28 21:32
안녕하세요. 리스트리를 사용하여 네이버쇼핑 크롤링 후 데이터를 만들었습니다. 또 재고관리 솔루션 보면서 그 데이터를 활용하는 프로그램을 만들며 따라하고 있습니다. 상세한 설명 정말 감사드립니다. 그런데, VBA 폼에 이미지를 나타내게 하는 방법은 없을까요? 이미지 웹 url은 데이터에 포함되어 있어서 활용하고 싶은데, insertWebImage 함수랑 xImage 함수 모두 셀에 삽입하는 것 같아서 적용이 힘드네요. ㅠㅠ 조언 부탁드립니다.
20230528_213207
오빠두엑셀
오빠두엑셀 작성자 2023.06.05 19:50
안녕하세요.
VBA 폼에 이미지를 출력할 수 있습니다.
여러가지 방법이 있으나, 가장 확실한 방법은 URL 이미지를 PC에 다운받은 후, 다운받은 이미지를 출력하면 됩니다.
아래 코드는 ChatGPT를 통해 얻은 코드이며, 적절히 수정 후 사용해보시길 바랍니다.
Sub DownloadAndShowImage()

Dim myURL As String
Dim http As Object
Dim imgPath As String

' Define the URL of the image
myURL = "http://example.com/yourimage.jpg" ' replace with your URL

' Path to save the image
imgPath = Environ("TEMP") & "\temp_img.jpg" ' Replace with your path

' Create an XMLHTTP object
Set http = CreateObject("MSXML2.XMLHTTP")

' Initialize the XMLHTTP object
With http
.Open "GET", myURL, False
.send
End With

' Write the stream of the XMLHTTP object to a file
Dim bs As Object
Set bs = CreateObject("ADODB.Stream")
With bs
.Type = 1 ' Binary
.Open
.write http.responseBody
.savetofile imgPath, 2 ' Overwrite
.Close
End With

' Load image to UserForm
Load UserForm1
UserForm1.Image1.Picture = LoadPicture(imgPath)
UserForm1.Show

' Clean up
Set http = Nothing
Set bs = Nothing
End Sub
강민준🤗
강민준🤗 2024.08.11 12:30
좋은 자료 감사합니다.🙇‍♂️