Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 사용자 정의 폼에서 그림 표시와 셀에 추가하기

엑셀(Excel)/VBA
반응형

엑셀 VBA 는 사용자가 프로그램 화면을 구성할 수 있도록 사용자 정의 폼을 제공합니다. 여느 프로그래밍 언어처럼 폼 위에 컨트롤을 올려서 엑셀의 부족한 기능을 화면으로 만들어서 채울 수 있습니다. 오늘 만들어 볼 것은 이미지를 선택하고 셀에 추가하는 기능을 수행하는 사용자 정의 폼입니다.

 

 

* 실전 연습을 위한 작업파일이 필요하다면 아래 파일을 다운받으세요.

 

엑셀 VBA 사용자 정의 폼에서 그림 표시와 셀에 추가하기.xlsm
0.02MB

 

 

사용자 정의 폼 구성하기

 

VBA 사용자 정의 폼을 만들기 위해 Visual Basic 편집 에디터를 띄웁니다. 개발 도구 > Visual Basic 리본 메뉴를 클릭합니다.

 

Visual Basic 창에서 컨트롤을 올릴 폼을 추가하겠습니다. 왼쪽 상단에 사용자 정의 폼 메뉴를 클릭합니다.

 

화면에 나타난 도구 상자에서 명령 단추 컨트롤을 찾습니다. 그리고 마우스로 드래그해서 단추 2개를 폼에 추가합니다.

 

다음은 버튼의 이름을 변경하겠습니다. 버튼을 선택하고 오른쪽 마우스를 누릅니다. 그리고 속성 창을 띄웁니다.

 

속성창에서 Caption 항목의 이름을 수정합니다.

 

다음은 선택한 이미지의 경로를 표시할 텍스트 박스를 폼에 추가합니다. 텍스트 박스의 이름은 txtImagePath 로 변경합니다. 텍스트 박스 컨트롤에 붙인 이름은 소스에서 제어할 때 기억하기 쉬운 이름으로 변경했습니다.

 

마지막으로 선택한 이미지를 미리보기 할 컨트롤 박스를 폼에 추가합니다. 컨트롤에서 이미지 아이콘을 클릭한 다음 마우스로 드래그해서 추가합니다.

 

만약 컨트롤을 추가하는 도구 상자가 보이지 않는다면 보기 > 도구 상자 메뉴를 선택합니다.

 

아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※
엑셀 VBA 이미지 셀 크기에 자동으로 삽입하는 매크로 만들기
엑셀 VBA - 사용자 정의 폼에 그림표시와 셀에 추가하기
엑셀 VBA 카메라 기능을 매크로로 작성하기
엑셀 Excel 이력서 사진 추가, 셀에 이미지 고정시키기
엑셀 Excel 선택창을 이용해서 그림, 이미지를 숨기기



 

이미지 추가 기능 구현하기

 

지금까지 이미지를 선택하고 미리 보기할 폼 화면을 구성했습니다. 이제 기능을 추가할 차례입니다. 버튼을 클릭했을 때 원하는 동작을 할 수 있도록 함수를 만들고 연결하겠습니다. 버튼을 더블 클릭해 보세요. 바로 모듈 화면에 자동으로 이벤트 함수를 생성합니다.

 

함수에 들어가는 소스는 다음과 같습니다. Application 개체 함수인 Application.GetOpenFilename() 이용해서 파일 선택창을 띄웁니다. 화면에 나타난 창에서 이미지 파일을 좀 더 빠르게 선택할 수 있도록 filefilter 옵션을 추가했습니다. 사용자가 선택한 파일의 경로는 폼에 추가한 Image1.Picture 와 텍스트 박스인 txtImagePath 컨트롤에 입력합니다.

 

Private Sub CommandButton1_Click()

    Dim path As Variant

    path = Application.GetOpenFilename( _
            filefilter:="그림파일,*.gif;*.jpg;*.bmp,전체파일,*.*", _
            Title:="그림선택")

    Me.txtImagePath = path
    Me.Image1.Picture = LoadPicture(path)

End Sub

  

 

추가한 함수가 제대로 동작하는지 테스트하기 위해 폼을 실행합니다. 단축키는 F5 입니다.

 

실행한 폼 화면에서 이미지 선택 버튼을 눌러 보세요. 위에서 추가한 함수가 실행되면서 그림선택 팝업창이 뜰 겁니다.

 

팝업창에서 이미지를 선택하면 image 컨트롤과 텍스트 박스에 그림과 같이 화면에 나타납니다.


 

 

셀에 이미지 추가하기

 

다음은 셀에 이미지를 추가하는 함수를 만들어서 버튼과 연결하겠습니다. 소스는 아래와 같습니다. 함수는 지정한 이미지가 있는지 체크하고 선택한 셀의 크기에 맞게 이미지를 맞추는 기능을 수행합니다.

Private Sub CommandButton2_Click()

    Dim num As Integer

    If Me.txtImagePath = "" Then
        MsgBox "이미지가 없습니다. 다시 확인해주세요", vbCritical
        Exit Sub
    End If

    num = ActiveSheet.Pictures.Count
    ActiveSheet.Pictures.Insert (Me.txtImagePath)
    ActiveSheet.Pictures(num + 1).Select

    With Selection
        .Left = ActiveCell.Left
        .Top = ActiveCell.Top
        .Width = ActiveCell.Width
        .Height = ActiveCell.Height
        .Placement = xlMoveAndSize
    End With

End Sub

 

두 번째 버튼과 연결할 함수가 완료되었다면 실행전에 이미지를 추가할 셀을 선택합니다. 그리고 이미지가 들어갈 셀의 크기도 조절합니다.

 

사용자 정의 폼에 두 번째 버튼인 셀에 추가 버튼을 눌러 선택한 셀로 이미지가 제대로 들어가는지 확인합니다.

 

아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※
엑셀 VBA 이미지 셀 크기에 자동으로 삽입하는 매크로 만들기
엑셀 VBA - 사용자 정의 폼에 그림표시와 셀에 추가하기
엑셀 VBA 카메라 기능을 매크로로 작성하기
엑셀 Excel 이력서 사진 추가, 셀에 이미지 고정시키기
엑셀 Excel 선택창을 이용해서 그림, 이미지를 숨기기
반응형
Posted by 녹두장군

댓글을 달아 주세요