※ oppadu.com 참고
1. 요약
엑셀 xImage 함수는 인터넷 또는 특정 파일 경로의 이미지를 실시간으로 삽입하는 사용자 지정 함수입니다.
2. 명령문 구문
= xImage ( URL/파일경로, [여백], [새로고침여부] )
사용된 인수 및 변수 알아보기
인수 | 설명 |
URL 또는 파일경로 [Variant] |
그림을 불러올 웹 URL 또는 파일 경로입니다. 파일 경로는 폴더경로를 포함한 전체 경로를 입력합니다. 만약 웹 URL 경로 일 경우 URL 주소는 반드시 http:// 또는 https:// 로 시작해야 합니다. |
여백 [Long, 선택인수] |
그림의 여백을 픽셀단위로 입력합니다. 기본값은 0 (여백 없음) 입니다. |
새로고침 [Boolean, 선택인수] |
그림 새로고침 여부입니다. TRUE 일 경우 함수가 새로고침 되면, 기존에 삽입 되어있던 그림을 삭제하고 새로운 이미지를 삽입합니다. FALSE일 경우 기존에 삽입되어 있던 그림을 유지합니다. 기본값은 TRUE 입니다. |
엑셀 xImage 함수는 인터넷 URL 또는 특정 파일 경로의 이미지를 실시간으로 삽입하는 엑셀 사용자지정 함수입니다. 만약 대상 경로로 인터넷 URL 주소일 경우, URL 주소는 반드시 "http://" 또는 "https://" 로 시작해야 합니다. 예를들어 "www.google.com/image.jpg" 로 "https://" 없이 URL 주소를 입력할 경우 xImage 함수는 결과값으로 #VALUE! 오류를 반환합니다.
Function xIMAGE(Link, Optional Margin As Long = 0, Optional UpdateImage As Boolean = True)
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'수정 및 배포 시 출처를 반드시 명시해야 합니다.
'■ xIMAGE 함수
'■ 인터넷 URL 또는 특정 파일 경로의 이미지를 삽입합니다.
'■ 사용방법
'=xImage("https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png")
'■ 인수 설명
'_____________Link : 웹 URL 또는 파일 경로입니다. 웹 URL일 경우 링크는 반드시 https:// 또는 http:// 로 시작해야 합니다.
'_____________Margin : 셀 안에 삽입할 그림에 여백을 줍니다. 픽셀 단위로 입력합니다. 기본값은 0(=여백없음)입니다.
'_____________UpdateImage : TRUE 일 경우 기존 셀 안에 삽입되어 있던 그림을 삭제하고 새로운 그림으로 갱신합니다. 기본값은 TRUE 입니다.
'###############################################################
Dim aRng As Range: Dim aWS As Worksheet
Dim shpImg As Shape
On Error Resume Next
Set aRng = Application.Caller
Set aWS = aRng.Parent
Application.EnableEvents = False
If IsEmpty(Link) Then xIMAGE = CVErr(xlValue): Exit Function
For Each shpImg In aWS.Shapes
If shpImg.TopLeftCell.Address = aRng.Address Then
If UpdateImage = True Then
shpImg.Delete
Else
xIMAGE = True
GoTo Final
Exit Function
End If
End If
Next
Set shpImg = aWS.Shapes.AddPicture(Link, msoFalse, msoTrue, _
aRng.Left + Margin, aRng.Top + Margin, _
aRng.MergeArea.Width - Margin * 2, aRng.MergeArea.Height - Margin * 2)
shpImg.Placement = xlMoveAndSize
If shpImg Is Nothing Then
xIMAGE = CVErr(xlValue)
Else
xIMAGE = True
End If
Final:
Set shpImg = Nothing: Set aRng = Nothing: Set aWS = Nothing
Application.EnableEvents = True
End Function
명령문 동작원리 단계별 알아보기
- xImage 함수에 사용할 변수를 선언하고 설정합니다.
Dim aRng As Range: Dim aWS As Worksheet Dim shpImg As Shape On Error Resume Next Set aRng = Application.Caller Set aWS = aRng.Parent
- 함수의 빠른 동작을 위해 시트 이벤트 동작을 비활성화합니다.
Application.EnableEvents = False
- 파일 경로가 비어있을 경우 #VALUE! 오류 반환 후 명령문을 종료합니다.
If IsEmpty(Link) Then xIMAGE = CVErr(xlValue): Exit Function
- 시트 안에 삽입된 이미지를 하나씩 돌아가며, 기존에 삽입된 이미지가 있는지 확인합니다.
For Each shpImg In aWS.Shapes If shpImg.TopLeftCell.Address = aRng.Address Then If UpdateImage = True Then shpImg.Delete Else xIMAGE = True GoTo Final Exit Function End If End If Next
- 경로의 이미지를 삽입합니다.
Set shpImg = aWS.Shapes.AddPicture(Link, msoFalse, msoTrue, aRng.Left + Margin, aRng.Top + Margin, aRng.Width - Margin * 2, aRng.Height - Margin * 2) shpImg.Placement = xlMoveAndSize
- 경로에서 받아온 이미지가 없을 경우 #VALUE! 오류 반환 후 명령문을 종료합니다.
If shpImg Is Nothing Then xIMAGE = CVErr(xlValue) Else xIMAGE = True End If Final: Set shpImg = Nothing: Set aRng = Nothing: Set aWS = Nothing Application.EnableEvents = True
'IT' 카테고리의 다른 글
kakao map Polygon - 17개 시도 - 다각형 - 시각화 하기 (0) | 2023.07.03 |
---|---|
excel encode & decode 방법 (0) | 2022.03.28 |
톰캣 로그 날짜별 생성 설정 - logrotate & 로그 설정별 장단점 (0) | 2022.02.24 |
스프링 시큐리티 & JWT (0) | 2021.07.30 |
CENT OS 7 젠킨스 설정 (0) | 2021.04.15 |