Lost Information!

엑셀 VBA 기초 - 이미지 선택창 열어주기 - 2편 본문

개인브랜드블로그를 만들어 보자/엑셀VBA

엑셀 VBA 기초 - 이미지 선택창 열어주기 - 2편

Lostinformation 2021. 1. 15. 16:36

모두가 칼퇴하는 그날까지~

 

지난 글에서는

엑셀 셀에서 더블클릭으로

이미지를 선택하는 창을

띄우는 법에 대해 

알려드렸습니다.

 

만일 저번 내용을 모르시거나

기억이 나질 않으신다면

밑에 글을 참고해주세요.

red-s.tistory.com/2490

 

엑셀 VBA 기초 - 이미지 선택창 열어주기 - 1편

모두가 칼퇴하는 그날까지~ 지난 글에서는 리스트 박스에서 다중 선택한 목록을 다운로드하여 원하는 셀로 붙여 넣는 방법을 알려드렸습니다. 만일 저번 내용을 모르시거나 기억이 나질 않으

red-s.tistory.com

 

저번 글에서

더블클릭이벤트로

이미지 파일을 선택하는 

부분까지 알려드렸습니다.

 

하지만 그것만으로는 

실행되지 않아 

알려드리지 못한

추가적인 VBA에 대해 

이어서 알려드리겠습니다.

 

그럼 엑셀을 실행해주시고

바로 ALT +F11을 눌러주세요.

 

마우스 오른쪽 버튼을 눌러

삽입에 모듈을 추가해주시고

이렇게 입력해주세요.

 

바로 설명해드리면

 

Sub 조회()
    Call Image_Insert
End Sub

조회 버튼을 눌렀을 때

Image_Insert를 실행시켜줘

(파라미터가 없어도

Optional구문이 있어서

에러가 나지 않고 실행됨)

 

Sub Image_Insert(Optional strPath As String)

Image_Insert라는

매크로를 만들 거야

(Optional 구문은 파라미터가

있으면 받고 없으면 그냥

실행하겠다는 구문입니다.)


Dim strFolder   As String
Dim strFile     As String
Dim Img         As Object
Dim rngT        As Range

strFolder, strFile, Img, rngT

라는 변수를 설정해줘 

 

strFolder =ThisWorkbook.Path & "\Image\"

strFolder는 이미지가 있는

경로로 지정해주겠습니다.

 

If strPath = "" Then
strPath = strFolder & Range("B5")

만약 strPath가 파라미터를

받은 게 없다면 Image폴더

안에서 B5셀에 쓰여있는 

이미지 명의 이미지를 찾아서

가지고 와 

 

strFile = Dir(strPath & ".*", vbNormal) 

확장자는 신경 쓰지 말고 

이름이 같으면서도 제일 먼저

보이는 파일로 불러와 

(strFile= Dir(파일 경로& aaa".*", xlNormal)

파일 경로& aaa 이름의 제일 먼저

보이는 파일명을 strFile에 저장)

 

strPath = strFolder & strFile

strPath에는 Image폴더 경로에

파일명&확장자 명까지 

전부 넣어줘 


End If

 

Set rngT = Range("G17:G23")

이미지는 G17:G23에 넣어줘

 

ActiveSheet.Pictures.Insert(strPath). Select

이미지를 넣고 나서 

 

With Selection

. ShapeRange.LockAspectRatio = msoFalse

비율을 무시하고 

 

. Width = rngT.Width - 4

. Height = rngT.Height - 4

. Left = rngT.Left + 2

. Top = rngT.Top + 2

(가져올 이미지의 비율이

실제 범위의 비율과

다를 수 있기 때문에

이미지의 비율을 무시하고

크기를 조장할 수 있도록

작성합니다.)

 

End With
End Sub

이렇게 작성하고 실행해보면

 

 

이렇게 이미지 선택창이 

나오게 되고 이미지를 

선택하게 되면

 

이렇게 비율을 무시하고

셀 안에 꽉 차는 이미지를 

얻을 수 있습니다.

 

활용도가 높은 구문인만큼

꼭 적어서 실습해보셨으면 

좋겠습니다.

 

그리고 기억해야 할 구문은

나만의 사전에 저장하여

필요할 때마다 사용하셨으면

좋겠습니다.

 

그럼 여기까지 궁금하신 점은

댓글에 남겨주시고

공감구독도 부탁드립니다.

Comments