[ 기초 강좌 ]
제 42 강
UserForm 사용하기_4
UserForm
그 사용법을 알아봅니다.
이럴 때 필요해요
UserForm 사용법을 알아봅시다.
이렇게 사용해요
일단, 오른 쪽의 버튼을 눌러서 오늘 만들어 볼 프로그램을 살펴보고 오시기 바랍니다.
먼저, 오늘 등장한 인물들을 소개합니다 (아래의 그림을 참조하시기 바랍니다.)
이번 시간에 소개해 드리는 사용자정의 폼의 이벤트 핸들러 프로시저는 의외로 매우 간단합니다.
즉, [optOK] 이라는 버튼을 눌렀을 때 실행되는 프로시저(optOK_Click)와 [optCancel] 이라는 버튼을 눌렀을 때 실행되는
프로시저(optCancel_Click) 두 개의 이벤트 핸들러 프로시저로 구성되어 있습니다만, optCancel_Click 이라는 프로시저의구문,
즉 Unload Me 라는 명령어에 대해서는 이전 시간에 설명드렸으므로, 생략하기로 하고
optOK_Click 이라는 이벤트 핸들러 프로시저, 즉 사용자가 텍스트박스에 이름을 입력하고 3개의 [옵션 단추] 중에서 하나의
성별에 체크한 다음, [입력]이라는 버튼을 눌렀을 때 실행될 프로시저의 내용에 대해서만 간략하게 설명드리겠습니다.
Private Sub optOK_Click( ) Dim intRow As Integer intRow = Cells(65536, 2).End(xlUp).Row + 1 Cells(intRow, 2) = txtName.Text |
먼저, intRow 라는 정수형(Integer) 변수를 선언해 주신 다음
Cells(65536, 2), 즉 B65536 셀(B열에서의 끝 행에 해당하는 셀)에서 Ctrl+↑ 키를 눌러선택되는 셀,
즉 B열에서 값이 있는 영역의 맨 마지막 셀의 행값(Row)에 1을 더한 수로정의해 주고
(참고로, 계속해서 특정 열에서 값이 있는 맨 마지막 셀의 다음 셀에 특정한값을 입력하고자 할 경우 이와 같은 방법을 사용합니다.)
Cells(intRow, 2)의 셀, 즉 B열에서 값이 있는 영역의 맨 마지막 셀의 바로 아래 셀에
txtName 라는 이름의 TextBox에 입력된 값을 구현합니다.
If optMale Then Cells(intRow, 3) = "남성" ElseIf optFemale Then Cells(intRow, 3) = "여성" Else Cells(intRow, 3) = "미상" End If
|
위 내용은 사용자정의 폼에 포함된 3개(optMale, optFemale, optUnknown)의 [옵션 단추]
즉, "남성" 또는 "여성" 및 "미상" 등의 Caption으로 구분되는 OptionButton 중에서 체크되어
있을 경우, 각 OptionButton에 해당하는 값("남성" 또는 "여성" 및 "미상" 등)을 If 조건문으로
할당해 주고, 그 값(체크되어 있는 OptionButton에 할당된 값)을 C열에서 값이 있는 영역의
맨 마지막 셀의 바로 아래 셀, 즉 Cells(intRow, 3) 에 구현합니다.
참고로, 위에서 사용된 If 조건문 즉, "If optMale Then" 은 "If optMale = True Then" 으로
해 주어야 할 것을 축약해서 사용한 것임을 양지하시기 바랍니다.
txtName.Text = "" optUnknown = True txtName.SetFocus End Sub |
이렇게 해서 성명과 성별의 입력이 완료되고 나면, 계속 입력을 위해 txtName 라는 이름의
TextBox에 입력된 값을 지우고(txtName.Text = ""), 또한 optUnknown 이라는 [옵션 단추] 를
체크상태로 나타 내며(optUnknown = True), 아울러 마우스의 포커스(Focus)를 txtName라는
TextBox에 위치하게 합니다.(txtName.SetFocus)
즉, 사용자정의 폼의 각 콘트롤을 초기화 합니다. 그런다음
optOK 라는 [명령 단추]를 눌렀을 때, 실행하게 되는 모든 작업을 종료합니다.(End Sub)
2. 다운로드 받은 콘텐츠는 본인(본인회사)만 사용할 수 있습니다.
3. 다른 사람과 공유하거나 원본 또는 수정 후 무단전제,무단배포,무단판매,무단 공유할 수 없습니다.
4. 웹상에서 배포는 상업,비상업적 목적을 불문하고, 손해배상등 가중처벌됩니다.