이 페이지에서
구문
InsertWebImage 셀, URL링크, [너비], [높이]
인수구분
형식 설명
셀
필수
Range
웹 이미지를 삽입할 셀입니다.
URL링크
필수
String
웹 이미지의 URL 주소입니다.
너비
선택
Double
이미지의 너비를 point 단위로 지정합니다. 기본값은 셀의 너비입니다.
높이
선택
Double
이미지의 높이를 point 단위로 지정합니다. 기본값은 셀의 높이입니다.
마스터 코드
복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요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
활용 예제
특정 URL 이미지를 A1 셀에 삽입
InsertWebImage Sheet1.Range("A1"),"https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"
' 구글 로고 이미지를 A1셀에 삽입합니다.
가로너비·세로높이를 지정하여 삽입
InsertWebImage Sheet1.Range("A1"),"https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png",100,100
' 구글 로고 이미지를 가로/세로 100point의 정사각형으로 삽입합니다.
네 가능합니다.
아래와 같이 코드를 사용해보세요.
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를 통해 얻은 코드이며, 적절히 수정 후 사용해보시길 바랍니다.