엑셀 VBA 콤보박스 ComboBox 의존 관계 데이터 선택 기능 만드는 방법 |
환경: Microsoft Excel 2013 |
두 개의 콤보박스에서 뒤에 있는 데이터가 앞에 있는 콤보박스에 의해 결정된다면 어떻게 구현해야 할까요? 오늘은 두 개의 콤보박스가 의존 관계를 가지고 있을 때 구현하는 방법에 대해 알아 보겠습니다. 방법은 여러 가지가 있겠지만 저는 Select Case 문을 이용해서 구현하였습니다.
▼ 먼저 [삽입] 메뉴 > [사용자 정의 폼]을 선택해서 새로운 Form 을 추가합니다.
▼ 다음은 Form 화면에 의존 관계를 구현할 두 개의 콤보박스를 구현합니다.
▼ 폼이 뜨면 실행되는 초기화 함수부터 구현합니다. 왼쪽 콤보박스에서 UserForm 과 오른쪽 콤보박스에서 Initialize 를 선택합니다. 그럼 초기화 함수 UserForm_Initialize() 함수가 자동으로 생성됩니다. 함수에는 왼쪽 콤보 박스에 데이터를 채우는 기능이 들어갔습니다.
Private Sub UserForm_Initialize() With ComboBox1 .AddItem "야채" .AddItem "과일" .AddItem "약초" End With End Sub |
▼ 왼쪽 콤보박스가 변경되면 오른쪽 콤보박스의 내용이 변경되어야 하므로 콤보박스 데이터를 선택했을 때 발생하는 ComboBox1_Change() 함수 안에 구현하였습니다. Select Case 문을 이용해서 왼쪽 콤보박스의 인덱스 번호에 맞춰 의존 관계에 있는 데이터들을 추가합니다.
Private Sub ComboBox1_Change()
Dim index As Integer
index = ComboBox1.ListIndex
ComboBox2.Clear
Select Case index Case Is = 0 With ComboBox2 .AddItem "배추" .AddItem "상추" .AddItem "고추" End With Case Is = 1 With ComboBox2 .AddItem "사과" .AddItem "포도" .AddItem "자두" End With Case Is = 2 With ComboBox2 .AddItem "인삼" .AddItem "더덕" .AddItem "도라지" End With End Select
ComboBox2.ListIndex = 0
End Sub |
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 문서에 포함된 하이퍼링크 한번에 삭제하기 (1) | 2022.11.30 |
---|---|
엑셀 VBA 폰트(Font) 색상과 스타일, 사이즈, 글꼴 변경하는 방법 (0) | 2022.10.27 |
엑셀 VBA Application.Evaluate 사용해서 수식 계산하기 (0) | 2022.07.07 |
엑셀 VBA 개체, 속성, 함수, 이벤트 사용법과 사례 검색해서 참고하기 (0) | 2022.04.26 |
엑셀 VBA Application.GoTo 함수로 시트에 커서 강제 이동시키는 방법 (0) | 2019.01.05 |
엑셀 VBA, UCase 와 LCase 함수를 사용해서 대문자, 소문자 변경하는 방법 (0) | 2018.09.09 |
엑셀(Excel) VBA 메모의 내용을 바로 옆 셀에 표시하는 방법 (8) | 2018.06.06 |
엑셀(Excel) VBA – 다른 시트의 값을 가져와서 데이터를 추가하는 방법 (4) | 2018.04.18 |