Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 이미지 셀 크기에 자동으로 삽입하는 매크로 만들기

엑셀(Excel)/VBA
반응형

엑셀 VBA 이미지 셀 크기에 자동으로 삽입하는 매크로 만들기

 

환경: Excel 365

 

사진을 셀에 맞추기 위해서는 몇 가지 작업을 해야 합니다. 그림서식으로 가서 속성을 변경하고 이미지를 셀 크기만큼 조절해서 맞춥니다. 복잡하지 않지만 좀더 간단하게 할 수 있는 방법이 없을지 고민하게 됩니다. 방법은 있습니다. 매크로를 이용해서 클릭한번으로 추가한 이미지의 크기를 셀에 맞추는 방법입니다. 한번 작성한 매크로 함수는 계속해서 사용할 수 있기 때문에 추가할 이미지가 많은 경우 작업 시간을 줄일 수 있습니다.

 

이미지 속성을 이용해서 셀이 크기를 맞추는 방법들을 알고 싶다면 아래 포스팅을 참고하세요.

 

[참고]

l  엑셀 Excel 이력서 사진 추가, 셀에 이미지 고정시키는 방법

l  엑셀 Excel 그림 여러 채워서 앨범 만들기

 

이미지 셀 자동 맞추기 매크로 작성하기

 

추가할 매크로 함수는 선택한 셀에 이미지를 자동으로 맞추는 기능이 들어갑니다. 먼저 매크로 함수를 만들겠습니다. 개발 도구 탭 > 매크로 리본 메뉴를 클릭합니다.

엑셀 VBA 이미지 셀 크기에 자동으로 삽입하는 매크로 만들기

 

매크로 생성 대화상자가 뜨면 사용할 매크로 이름을 입력하고 만들기 버튼을 클릭합니다

엑셀 VBA 이미지 셀 크기에 자동으로 삽입하는 매크로 만들기

 

엑셀은 VBA 편집 화면에 생성한 함수를 추가합니다. 이제 Sub 함수 내에 코드를 작성하겠습니다

엑셀 VBA 이미지 셀 크기에 자동으로 삽입하는 매크로 만들기

 

매크로 함수에 들어갈 소스를 설명하겠습니다. 먼저 추가할 이미지를 사용자가 선택할 수 있도록 대화상자를 띄웁니다. 파일 확장자는 이미지에 해당하는 jpg, bmp, gif, tif 로 합니다.

 

pic = Application.GetOpenFilename _

                    (filefilter:="Picture Files,*.jpg;*.bmp;*.tif;*.gif")

 

파일 선택 대화상자에서 리턴받은 객체인 pic 에 사용자가 선택한 이미지 정보가 있는지 판단합니다. 아무것도 없다면 메시지를 출력하고 함수를 빠져나갑니다.

 

'' 파일이 없을 때 메시지 출력, 함수 종료

If pic = False Then

    MsgBox "선택한 파일이 없습니다."

    Exit Sub

End If

 

다음은 선택한 셀에 이미지를 추가하기 위한 ActiveSheet.Pictures.Insert() 함수에 리턴받은 pic 객체를 입력합니다. 그리고 이미지의 크기를 셀에 맞추기 위해 고정 옵션을 해제합니다. LockAspectRatio 속성에 msoFalse 를 입력합니다.

 

.LockAspectRatio = msoFalse ' 가로/세로 크기 고정 해제

 

이미지 객체의 높이, 넓이, 왼쪽 상단 모서리의 위치를 선택한 셀 (Selection) 의 값과 동일하게 맞춥니다.

 

.Height = Selection.Height

.Width = Selection.Width


.Left = Selection.Left

.Top = Selection.Top

 

전체 소스는 다음과 같습니다.

 

Sub ImgFix()

    Dim pic As Variant

 

    pic = Application.GetOpenFilename _

                    (filefilter:="Picture Files,*.jpg;*.bmp;*.tif;*.gif")

   

    '' 파일이 없을 때 메시지 출력, 함수 종료

    If pic = False Then

        MsgBox "선택한 파일이 없습니다."

        Exit Sub

    End If

   

    With ActiveSheet.Pictures.Insert(pic).ShapeRange

        .LockAspectRatio = msoFalse ' 가로/세로 크기 고정 해제

        .Height = Selection.Height

        .Width = Selection.Width

        .Left = Selection.Left

        .Top = Selection.Top

    End With

   

End Sub

 

함수 내에 소스를 복사해서 넣습니다

엑셀 VBA 이미지 셀 크기에 자동으로 삽입하는 매크로 만들기

 

매크로 실행해서 셀 이미지 추가하기

 

지금까지 만든 매크로 함수를 이용해서 이미지를 추가하고 자동으로 셀에 크기를 맞춰보겠습니다. 먼저 이미지를 추가할 셀을 선택하고 개발 도구 탭으로 가서 매크로 관리 화면을 띄웁니다. 그리고 이전에 생성한 매크로 함수를 선택하고 오른쪽 상단에 실행 버튼을 클릭합니다

엑셀 VBA 이미지 셀 크기에 자동으로 삽입하는 매크로 만들기

 

매크로 함수의 첫 번째 진행 단계가 사용자에게 이미지를 추가할 수 있도록 파일 추가 대화상자를 띄우는 것입니다. 셀에 추가할 이미지를 선택하고 창을 닫습니다

엑셀 VBA 이미지 셀 크기에 자동으로 삽입하는 매크로 만들기

 

그림처럼 이전에 선택한 셀에 추가한 이미지가 크기에 맞춰서 들어갔습니다

엑셀 VBA 이미지 셀 크기에 자동으로 삽입하는 매크로 만들기

반응형
Posted by 녹두장군

댓글을 달아 주세요

  1. 2021.10.20 08:33  댓글주소  수정/삭제  댓글쓰기

    복붙이 안되는게 불편