본문 바로가기

엑셀/VBA

엑셀 VBA UserForm 만들기 및 화면에 출력하기

반응형

이전 글에서 UserForm을 디자인하는 방법과 ActiveX 컨트롤에 대해 알아보았습니다. UseForm에 대해 좀 더 자세히 알아보려고 합니다.

 

VBA 사용자 정의 폼과 컨트롤 도구로 엑셀 시트에 데이터 입력하기

 

VBA 사용자 정의 폼과 컨트롤 도구로 엑셀 시트에 데이터 입력하기

지금까지 VBA 작성을 위한 ActiveX 컨트롤을 사용하는 방법에 대해 알아보았습니다. 이번에는 직접 디자인한 창을 띄우고 데이터를 입력하면 엑셀 시트에 정리되어 입력되게 하는 방법에 대해 알

mr-johndoe.tistory.com

 

 

 

 

 

1. 사용자 정의 폼(UserForm) 도구 상자

  엑셀을 여시고 VBE 창을 열고 VBE 창 메뉴에서 삽입-사용자 정의 폼을 클릭합니다.

사용자 정의 폼이 화면에 나타나며 도구 상자가 함께 출력됩니다.

 

 1.1 도구상자 컨트롤 추가

    도구 상자내의 공백에 마우스 커서를 이동시키고 마우스 오른쪽 버튼을 클릭합니다.

 

도구상자-메뉴
[그림 1] 도구 상자 - 메뉴

 

[그림 1]과 같이 메뉴가 출력되면 '추가 컨트롤'을 클릭합니다.

 

도구상자-컨트롤추가
[그림 2] 도구 상자 - 컨트롤 추가

[그림 2]와 같은 창이 출력됩니다. 추가 컨트롤 창에서 '사용 가능한 컨트롤'에서 추가하고자 하는 항목을 선택하신 후 확인 버튼을 클릭하시면 도구 상자에 선택한 항목이 추가됩니다.

 

또한, 도구 상자의 메뉴에서 삭제하고자 하는 항목이 있으면 행당 항목 아이콘을 마우스 오른쪽 버튼으로 클릭하면 메뉴가 뜨는데 메뉴 중 삭제를 선택하시면 해당 항목이 도구 상자에서 삭제됩니다.

 

 1.2 도구 상자에 새 탭 추가

    도구 상자에서 탭을 추가하려면 마우스 우측 버튼으로  '컨트롤' 탭을 클릭합니다. 

 

도구상자-탭추가
[그림 3] 도구 상자 - 탭 메뉴

[그림 3]과 같은 메뉴가 출력됩니다. 메뉴에서 '새 페이지'를 클릭하시면 탭이 추가가 됩니다. 그리고, 추가된 탭을 마우스 오른쪽 버튼으로 클릭하여 메뉴를 여신 후에 '이름 바꾸기'를 클릭하시면 탭의 이름을 변경할 수 있습니다.

 

 1.3 도구 상자 표시하기 및 숨기기

    도구 상자를 닫으시려면 도구 상자 창의 오른쪽 위에 창닫기를 클릭하시면 도구 상자가 사라집니다. 그리고, 다시 도구 상자를 표시하시려면 VBE 창 메뉴에서 보기-도구 상자를 클릭하시면 다시 도구 상자가 화면에 나타납니다. 도구 상자가 화면에 표시되어 있는 상태에서 보기-도구 상자를 클릭하시면 도구 상자가 사라집니다.

 

 

 

 

2. 사용자 정의 폼(UserForm)

  사용자 정의 폼을 생성한 후 VBE 창 메뉴에서 보기-코드를 클릭하시면 사용자 정의 폼의 코드 창이 열립니다. 단축키 F7키를 누르셔도 됩니다.

 

 2.1 사용자 정의 폼 이름 변경

    사용자 정의 폼의 이름을 변경하고자 할 경우 속성 창에서 이름에 원하시는 이름을 입력하시면 됩니다. 프로젝트 창을 보시면 입력하신 이름으로 변경된 것을 확인하실 수 있습니다. 또한 [그림 4]와 같이 코드 창 상단에 표시된 이름이 변경됩니다.

 

UserForm-코드창-이름변경
[그림 4] 속성-이름변경

 

화면에 속성 창이 보이지 않으시면 VBE 창 메뉴에서 보기-속성 창을 클릭하시거나 단축키 F4키를 누르시면 속성 창이 화면에 나타납니다. 

 

속성 창의 Caption에 사용자 정의 폼 왼쪽 상단에 표시될 이름을 입력합니다. ([그림 5] 참조)

 

UserForm-Caption변경
[그림 5] 속성 - Caption변경

 

 2..2 사용자 정의 폼에 컨트롤 생성

    도구 상자에서 텍스트 상자를 마우스 왼쪽 버튼으로 클릭하고 사용자 정의 폼에 마우스 드래그하여 생성합니다. 그리고, 텍스트 상자를 생성한 방법과 동일하게 명령 단추 하나를 생성합니다.

 

이와 같이 컨트롤을 생성할 때는 원하시는 항목을 도구 상자에서 마우스 왼쪽 버튼으로 클릭하시고, 사용자 정의 폼에서 원하는 위치로 마우스 커서를 이동시킨 후 드래그하여 생성합니다.

 

생성하신 후 크기를 변경하시고 싶으시면 해당 컨트롤을 클릭하시면 컨트롤 테두리에 빗금과 함께 점이 생성됩니다. 그 점 위로 마우스 커서를 이동시키면 화살표로 변하는데 그 상태에서 마우스 왼쪽 버튼으로 클릭하고 드래그하시면 컨트롤의 크기가 변경되며 원하시는 크기만큼 드래그하신 후 마우스 왼쪽 버튼을 놓으시면 컨트롤 크기가 변경됩니다.

 

[그림 6] 사용자 정의 폼 - 텍스트상자 & 버튼

텍스트 상자를 마우스 왼쪽 클릭하여 선택하면 [그림 6]의 텍스트 상자와 같이 테두리에 빗금과 점이 생성된 것을 보실 수 있습니다.

 

 

 

 

3. 사용자 정의 폼(UserForm) 출력

  엑셀 시트에서 개발 도구-삽입-ActiveX 컨트롤-명령 단추를 클릭한 후 드래그하여 버튼 하나를 생성합니다.

생성한 버튼의 속성 창에서 Caption에 'UserForm 열기'라고 입력합니다. 그리고, 버튼을 마우스 왼쪽 버튼으로 더블클릭하여 코드 창을 엽니다. 다음과 같이 코드 창에 코드를 작성합니다.

 

   Private Sub CommandButton1_Click()

      Example.Show

   End Sub

 

Example.Show

: 작성한 사용자 정의 폼을 화면에 출력하라는 명령입니다. Example은 사용자 정의 폼의 이름입니다.

 

엑셀 시트에 생성한 버튼을 클릭하시면 작성하신 사용자 정의 폼이 출력됩니다. 버튼을 클릭하시기 전에 개발 도구-컨트롤-디자인 모드가 활성화 되었는지 확인하시고 활성화되어 있으면 클릭하셔서 활성화를 꺼주셔야 버튼이 클릭됩니다.

 

반응형