1. 들어가기
아래 그림과 같은 VBA 폼(form)이 있다고 할 때 엑셀시트에 있는 값을 참조하여 콤보박스의 값 목록 채우기를 해 보자.
콤보박스의 값 목록은 복잡한 코딩(AddItem 매소드를 이용하여 목록의 값을 1개씩 넣어 주어야 함)으로 만들 수도 있지만 엑셀 시트에 "이름정의"를 만들어 간단히 구현할 수도 있다.
실습용 엑셀파일을 다운로드 한 후 아래의 순서대로 콤보박스 기능을 구현해 보자.
2. 엑셀 시트에 값 목록을 만들고 이름 정의하기
다음과 같이 콤보박스에 표시할 값 목록 2개를 엑셀시트에 만든다.
등급에 해당하는 값 범위(A2:A4)를 마우스로 선택하고 이름상자에 "등급"이라고 입력한다.
지역에 해당하는 값 범위(C2:C8)를 마우스로 선택하고 이름상자에 "지역"이라고 입력한다.
3. VBA 폼에 콤보박스 만들기
엑셀에서 비주얼베이직 에디터를 열고(Alt + F11를 누름) 다음 그림과 같이 폼을 추가하고 콤보박스 2개, 커맨드 버튼 1개를 만든다.
4. 폼의 속성에 "이름정의"를 입력
"등급" 콤보박스 컨트롤 ComboBox1의 속성 중 Rowsource 속성에 조금 전에 만든 이름정의 "등급"을 입력한다.
위와 마찬가지 방법으로 "지역" 콤보박스 컨트롤 ComboBox2의 속성 중 Rowsource 속성에 조금 전에 만든 이름정의 "지역"을 입력한다.
5. 콤보박스에서 선택된 값 보기 기능 구현
사용자가 콤보박스의 특정항목을 선택하면 어떤 값이 선택되었는지 보여주는 소스코드를 커맨드버튼 콘트롤의 클릭이벤트에 다음과 같이 추가하자.
이 소스코드에서 Me.ComboBox1.Value는 콤보박스에서 현재 선택된 값이다.
Private Sub CommandButton1_Click() MsgBox "ComboBox1 : " & Me.ComboBox1.Value & vbCrLf & vbCrLf & "ComboBox2 : " & Me.ComboBox2.Value End Sub
6. 실행 하기
아래와 같이 비주얼베이직 에디터 상태에서 폼을 선택한 후 실행버튼을 클릭하면
폼화면이 띄워진다. 값을 선택하고 "선택된 값 보기"를 클릭하면
아래와 같이 선택된 값이 표시된다.
이것으로 "엑셀 시트의 값을 참조하여 콤보박스 목록 채우기" 를 마친다.
[ VBA ]