엑셀 Excel UserForm 에 멀티 페이지 구현을 위해 탭 추가하는 방법 |
환경: Microsoft Excel 2013 |
오늘은 VBA 폼을 잘 다루기 위한 연습 문제입니다. 구현할 예제는 여러 탭으로 구성된 화면에서 입력한 데이터를 셀에 추가하는 것입니다. 탭은 옵션 대화상자를 구성할 때 많이 사용하는 컨트롤입니다. 오늘 학습할 내용은 2개의 탭 컨트롤의 차이점이 무엇이며 각 탭에 있는 컨트롤들을 어떻게 다루는지에 대한 것입니다.
▼ 탭 컨트롤은 2가지가 있습니다. 첫 번째 “연속 탭”은 모든 탭에 동일한 컨트롤이 들어갑니다. 하지만 “다중 페이지”는 각 탭 화면마다 컨트롤을 다르게 설정할 수 있습니다. 그래서 우리가 흔히 보는 옵션 창에 탭은 다중 페이지로 구현된 것입니다.
▼ 그림과 같이 다중 페이지로 구현한 탭은 각 탭 화면을 별도로 구성할 수 있습니다. 첫 번째 탭에는 이름, 별명, 블로그 정보를 입력하도록 텍스트 박스를 배치합니다. 두 번째 탭에는 리스트 박스와 버튼을 추가합니다. 이 버튼을 클릭하게 되면 2개의 탭에 입력했던 내용이 셀로 들어가게 됩니다.
▼ 폼이 뜨면 실행되는 초기화 함수부터 구현합니다. 두 번째 탭의 리스트 박스에 들어갈 취미 생활 목록 데이터들입니다.
Private Sub UserForm_Initialize() With ListBox1 .AddItem "바둑" .AddItem "등산" .AddItem "수영" .AddItem "테니스" End With End Sub |
▼ 다음은 두 번째 탭에 있는 “시트에 추가” 버튼을 클릭했을 때 실행되는 이벤트 함수에 대한 내용입니다. CountA 함수를 이용해서 B 열에 있는 데이터 개수를 알아 옵니다. 그럼 비어 있는 행이 몇 번째인지 알수 있겠죠. 그 값을 Cells 함수에 넣고 폼에 있는 데이터들을 차례대로 추가하는 것입니다.
Private Sub CommandButton1_Click()
Dim emptyRow As Long
emptyRow = WorksheetFunction.CountA(Range("B:B")) + 2
ActiveSheet.Cells(emptyRow, 2).Value = TextBox1.Value ActiveSheet.Cells(emptyRow, 3).Value = TextBox2.Value ActiveSheet.Cells(emptyRow, 4).Value = TextBox3.Value ActiveSheet.Cells(emptyRow, 5).Value = ListBox1.Value
'Close Userform Unload Me
End Sub |
▼ 엑셀 시트에는 폼을 실행할 버튼을 만들고 이벤트 함수에 Show 함수를 추가합니다. 이해를 돕기 위해 구현한 내용을 동영상으로 찍어서 올렸습니다. 참고하세요.
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA, UCase 와 LCase 함수를 사용해서 대문자, 소문자 변경하는 방법 (0) | 2018.09.09 |
---|---|
엑셀(Excel) VBA 메모의 내용을 바로 옆 셀에 표시하는 방법 (8) | 2018.06.06 |
엑셀(Excel) VBA – 다른 시트의 값을 가져와서 데이터를 추가하는 방법 (4) | 2018.04.18 |
엑셀 VBA 동일한 셀의 배경색을 구분하여 값을 합산하는 방법 (7) | 2018.02.01 |
엑셀(Excel) VBA – Application.Version 개체로 엑셀 버전과 사용언어 알아보기 (0) | 2014.12.29 |
엑셀(Excel) VBA – 셀에 적용된 같은 배경색 데이터 합산하기 (7) | 2014.12.28 |
엑셀(Excel) VBA – 문자열에서 숫자, 대문자, 소문자, 한글추출하기 (5) | 2014.12.24 |
엑셀(Excel) VBA – Application.Evaluate 함수 이용해서 수식문자열계산하기 (2) | 2014.12.23 |