VBA에서 함수를 이용하여 메시지 창 등을 사용하면 대화 상자를 쉽게 만들 수 있습니다. 하지만 이렇게 만든 대화 상자는 획일적인 모양이 되기 때문에 사용자 마음에 들지 않을 수도 있습니다. 내가 원하는 디자인으로 창을 꾸미길 원하는 경우 사용자 정의 폼을 이용하여 나만의 디자인으로 꾸미는 것입니다.
1. 사용자 정의 폼 열기
먼저 VBA를 사용하기 위해서는 개발도구 메뉴를 클릭하여 Visual Basic 편집기를 열어야 합니다. 개발도구 메뉴가 보이지 않으시면 이전 글인 엑셀 매크로 저장 및 사용하기 I를 참조하시기 바랍니다.
개발도구 메뉴를 클릭하시고 Visual Basic 아이콘을 클릭합니다. 이전글 엑셀에서 VBA 프로그램 작성하기를 참조하시어 Visual Basic 편집기를 엽니다.
Visual Basic 편집기 창에서 삽입메뉴를 클릭하시고 사용자 정의 폼을 선택합니다.
[그림 1]은 삽입 메뉴를 클릭했을 때 모습이고 [그림 2]는 사용자 정의 폼을 클릭했을 때 화면에 띄어지는 창 모습입니다.
[그림 2]에서 UserForm1이라는 이름의 창이 사용자 정의 폼 모습입니다.
UserForm1창을 선택한 상태에서 전체창 좌측 아래를 보시면 속성 창이 보입니다. 이곳은 선택된 창의 속성을 정할 수 있는 곳입니다. 또한 [그림 2]에서 우측에 보이시는 도구 상자를 이용하여 사용자 정의 폼을 꾸밀 수 있습니다.
2. 사용자 정의 폼 꾸며보기
인터넷에서 사이트에 로그인할때 많이 보시는 로그인 창을 한번 꾸며보겠습니다.
[그림 3]에서 빨간색 사각형으로 표시한 아이콘이 레이블입니다. 레이블은 창에서 글을 표시할 때 사용합니다. 로그인 창에서 ID와 비밀번호라는 글을 표시하기 위해 레이블 아이콘을 마우스 좌클릭합니다.
그 상태에서 UserForm1창에서 원하는 위치에 원하는 크기로 마우스 드래그하여 레이블을 만듭니다.
[그림 4]와 같이 레이블을 만든 후 마우스로 레이블을 한 번 클릭하면 글자를 변경할 수 있습니다.
'ID :'이라고 입력합니다. 같은 방식으로 도구 상자에서 레이블을 클릭하여 하나 더 만들 수 있지만 아이디 레이블과 같은 크기를 맞추기 위해 'ID :'입력한 레이블을 클릭하고 Ctrl + C 한 후 Ctrl + V를 하여 복사 붙여 넣기 합니다. 그러면 같은 크기의 레이블이 생성됩니다. 새로 만든 레이블을 아이디 레이블 아래에 드래그하여 이동시키고 마우스 좌 클릭한 후 '비밀번호 :'라고 입력합니다.
[그림 5]와 같이 레이블 두 개를 생성했습니다. 이제 각 레이블 우측에 텍스트 상자를 만들어 줍니다.
[그림 6]에서 빨간색 사각형으로 표시한 아이콘이 텍스트 상자 아이콘입니다. 텍스트 상자 아이콘을 클릭하여 ID 레이블 오른쪽 위치로 마우스 이동하신 후 드래그하여 텍스트 상자를 만듭니다. 그리고, 복사 붙여 넣기로 하나를 더 만들어 비밀번호 레이블 옆에 이동시킵니다.
이제 버튼 두 개를 만들 차례입니다. 버튼은 [그림 8]에 빨간색 사각형으로 표시한 아이콘입니다.
아이콘 위에 마우스를 이동시키면 명령 단추라는 설명이 뜹니다. 아이콘을 클릭하고 버튼을 만듭니다. 그리고, 버튼 이름을 '확인'이라 정하고 복사 붙여 넣기로 버튼 하나를 더 만드신 후 '취소'로 글자를 바꿉니다.
[그림 9]와 같이 로그인 창 디자인이 완성되었습니다. 이제 창 이름을 '로그인'이라고 바꾸기 위해 속성 창에서 이름을 바꿔줍니다.
[그림 10]에서 빨간색 사각형으로 표시된 부분을 마우스 클릭하고 '로그인'이라고 입력합니다. 그리고 아래를 보시면 Caption이 보이시는데 우측 사각형에 동일하게 '로그인'을 입력합니다. 그러면 로그인 창의 이름이 바뀌는 것을 보실 수 있습니다.
Caption의 로그인은 창의 이름 표시를 의미하는 것이고 '(이름)'에서의 로그인은 로그인 창 이름을 정하는 것인데 정한 이름은 VBA 프로그래밍 중 로그인 창을 지칭하려 할 때 사용하는 이름입니다.
'엑셀 > VBA' 카테고리의 다른 글
VBA로 업체별 납품 품목 자동으로 작성되어 정리되도록 하기 II (0) | 2021.08.11 |
---|---|
VBA로 업체별 납품 품목 자동으로 작성되어 정리되도록 하기 I (0) | 2021.08.11 |
VBA 이벤트와 이벤트 프로시저 삽입하고 실행해보기 III (0) | 2021.07.13 |
VBA 이벤트와 이벤트 프로시저 삽입하고 실행해보기 II (0) | 2021.07.09 |
VBA 이벤트와 이벤트 프로시저 삽입하고 실행해보기 I (0) | 2021.07.09 |