엑셀 웹 이미지 삽입 :: InsertWebImage 명령문 사용법 총정리
엑셀 InsertWebImage 명령문 목차 바로가기
요약
온라인 상의 이미지를 엑셀 시트위로 삽입하는 사용자 지정 함수입니다.
명령문 구문
= InsertWebImage ( 셀, URL링크, [너비], [높이] )
사용된 인수 및 변수 알아보기
| 인수 | 설명 |
| 셀 [Range] |
웹 이미지를 삽입할 셀 입니다. |
| URL링크 [String] |
웹 이미지의 URL 주소 입니다. |
| 너비 [Double, 선택인수] |
이미지의 너비를 point 단위로 지정합니다. 기본값은 셀의 너비입니다. |
| 높이 [Double, 선택인수] |
이미지의 높이를 point 단위로 지정합니다. 기본값은 셀의 높이입니다. |
예제파일 다운로드
오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.
- [엑셀VBA함수] InsertWebImage 함수예제파일
상세 설명
엑셀 InsertWebImage 함수는 웹 이미지를 엑셀 시트 위로 삽입하는 엑셀 사용자 지정 함수입니다. 최근 사용되는 대부분의 브라우저 (크롬(Chrome), 엣지(Edge), 파이어폭스(FireFox) 등..)은 끌어서놓기 (Drag&Drop) 으로 웹 이미지를 손쉽게 삽입할 수 있습니다.
하지만 셀 크기에 맞춰 이미지를 삽입하거나 특정 URL의 이미지를 반복하여 삽입해야 할 경우 InserWebImage 함수로 업무의 상당부분을 자동화 할 수 있습니다.
실전 사용 예제
- 특정 URL 이미지를 시트 A1셀에 삽입하기
InsertWebImage Sheet1.Range("A1"),"https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"
' 구글 로고 이미지를 A1셀에 삽입합니다. - 특정 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
명령문 동작원리 단계별 알아보기
- 변수를 선언합니다.
Dim WS As Worksheet Dim shp As Shape Dim W As Double: Dim H As Double Set WS = targetRng.Parent
- 이미지 너비 및 높이를 설정합니다.
If IsMissing(imgWidth) > 0 Then W = imgWidth Else W = targetRng.Width - 6 If IsMissing(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)
- 특정 URL 이미지를 시트 A1셀에 삽입하기

네 가능합니다.
아래와 같이 코드를 사용해보세요.
https://stackoverflow.com/questions/43466649/vba-add-hyperlink-to-a-picture
자세한 내용은 위 링크를 참고해보세요.
여기구문에 넣는건가요? 아니면 본문 구문
InsertWebImage Sheet1.Range("B4"), A
이 밑에 넣는건가요?만약 기존 코드에 그대로 사용하려면
Set shp = ... 코드 밑에 작성하면 됩니다.
를 추가해보세요.
링크를 동적으로 바꾸는건 상황에따라 다르기 때문에 방법은 직접 모색하셔야 합니다.
음... 이렇게... 가능할까요?
이렇게 사용해보세요.
If IsMissing(imgHeight) > 0 Then H = imgHeight Else H = targetRng.Height - 6
IF 문에서 이미지 크기를 지정하면 이미지 크기를 쓰고 없으면 셀 크기를 쓰는 의도로 보이는데, 내용은 반대로 되어 있습니다.
Optional imgWidth As Double 과 같이 Double로 형식지정을 하셨기 때문에 값이 기본값으로 0이 설정되어 버려서 IsMissing(imgWidth)은 인수를 지정하지 않아도 항상 False가 됩니다.
즉, 위의 코드로는 이미지 크기를 지정하든 지정하지 않든 모두 셀 크기에 따르게 됩니다.
네 확인해보니 IsMissing과 >0 이 같이 사용되어있어 방금 수정하였습니다!
말씀하신대로 IsMissing은 빼고 사용하는 것이 맞습니다. 확인해주셔서 감사합니다.
VBA 폼에 이미지를 출력할 수 있습니다.
여러가지 방법이 있으나, 가장 확실한 방법은 URL 이미지를 PC에 다운받은 후, 다운받은 이미지를 출력하면 됩니다.
아래 코드는 ChatGPT를 통해 얻은 코드이며, 적절히 수정 후 사용해보시길 바랍니다.