보통 콤보 상자에 하나의 열만 추가할 수 있다고 생각하지만 VBA 의 콤보 상자는 여러 줄의 열 추가가 가능합니다. 어떻게 하나의 열과 여러 줄의 추가할 수 있는지 샘플을 통해 알아보겠습니다.
◎ 콤보 상자 추가하기 |
▼ 먼저 VBA 폼을 만들어서 콤보 상자 두 개를 추가해 보겠습니다. VBA 편집 창을 열고 오른쪽 마우스 > 삽입 > 사용자 정의 폼 메뉴를 선택합니다.
▼ 폼 화면이 뜨면 도구 상자에서 콤보 상자를 찾아 추가합니다.
▼ 추가한 콤보 상자의 속성 정보에서 이름을 확인합니다. 해당 이름은 소스에서 사용할 것이기 때문입니다.
▼ 다음은 콤보 상자에 값을 넣기 위한 코드 편집기로 이동합니다. 폼을 선택하고 오른쪽 마우스 > 코드 보기 메뉴를 선택합니다.
▼ 코드를 추가할 폼 함수는 폼이 생성될 때 호출하는 Initialize 로 합니다. 왼쪽 상자에서 UserForm 과 바로 옆 상자에서 Initialize 를 선택하면 자동으로 함수가 생성됩니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 단위 변환 사용자 정의 폼 만들기 ▶ 엑셀 VBA 반복문을 이용해서 폼에 있는 전체 컨트롤 제어하기 ▶ 엑셀 VBA 사용자 정의 폼에서 그림 표시와 셀에 추가하기 ▶ 엑셀 VBA - 사용자정의 폼의 타이틀바에서 X 버튼 제어하기 ▶ 엑셀 VBA 반복문으로 여러 컨트롤 한번에 제어하기 |
◎ 콤보 상자에 하나의 열 추가하기 |
▼ 폼 초기화 함수인 UserForm_Initialize() 에 아래 코드를 추가합니다. 콤보 상자에 하나의 열을 추가하는 함수는 AddItem 입니다. 마지막 ListIndex 속성은 콤보 상자가 처음 뜰 때 선택할 데이터의 인덱스 값을 가리킵니다. 0 이면 콤보 상자 목록에서 제일 상단에 데이터입니다.
Private Sub UserForm_Initialize() With Me.ComboBox1 .AddItem "하나" .AddItem "두개" .AddItem "세개" .AddItem "네개" .AddItem "다섯" .ListIndex = 0 End With End Sub |
▼ 소스가 제대로 작성되었는지 검증하기 위해 폼을 실행합니다. 툴 박스에서 사용자 정의 폼 실행 을 클릭합니다.
▼ 결과는 다음과 같습니다. AddItem 함수로 콤보 상자에 데이터를 성공적으로 추가했습니다.
◎ 콤보 상자에 두 개 이상의 열 추가하기 |
▼ 이제 2개 이상의 열을 추가하는 방법을 알아보겠습니다. 먼저 값을 넣기 전에 멀티 열 입력이 가능하도록 속성을 변경해야 합니다. 콤보 상자를 선택하고 왼쪽 사이드 속성창으로 이동합니다. 그리고 ColumnCount 를 열 개수만큼 숫자를 변경합니다. ColumnHeads 를 True 로 하면 멀티 열에 타이틀 입력이 가능합니다.
▼ 소스는 다음과 같습니다. AddItem 코드 아래에 List 속성을 사용하여 두 번째 열에 값을 추가하는 코드를 넣습니다. ListCount 속성은 드롭다운 목록의 항목 수입니다. List 속성의 경우 행 및 열 수는 모두 0에서 시작합니다. List 속성의 첫 번째 인수는 행 번호, 두 번째가 열 번호입니다. ListCount 가 2 이므로 1을 빼면 List(1, 1) 이 됩니다. 이것은 두 번째 열을 뜻합니다. 첫 번째 열은 AddItem 으로 추가하고, 두 번째 열을 List 속성으로 추가합니다.
Private Sub UserForm_Initialize() With Me.ComboBox2 .AddItem "1행 1열" .List(.ListCount - 1, 1) = "1행 2열" .AddItem "2행 1열" .List(.ListCount - 1, 1) = "2행 2열" .ListIndex = 0 End With End Sub |
▼ 결과는 다음과 같습니다. 소스에 추가한 대로 1, 2열에 모두 데이터가 들어갔습니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 단위 변환 사용자 정의 폼 만들기 ▶ 엑셀 VBA 반복문을 이용해서 폼에 있는 전체 컨트롤 제어하기 ▶ 엑셀 VBA 사용자 정의 폼에서 그림 표시와 셀에 추가하기 ▶ 엑셀 VBA - 사용자정의 폼의 타이틀바에서 X 버튼 제어하기 ▶ 엑셀 VBA 반복문으로 여러 컨트롤 한번에 제어하기 |
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 영역에서 빈 셀, 행 열 삭제하기 (1) | 2023.07.18 |
---|---|
엑셀 VBA 메시지박스 (MsgBox) 에 문자열 줄 바꿈을 적용하는 방법 (0) | 2023.07.09 |
엑셀 VBA 각종 함수 사용법과 샘플 소스 쉽게 얻는 방법 (0) | 2023.07.09 |
엑셀 VBA 개발할 때 로그 출력하는 방법 (0) | 2023.07.08 |
엑셀 VBA 스핀(Spin) 컨트롤 사용하기 (0) | 2023.07.03 |
엑셀 VBA 영역을 선택했을 때 이벤트 처리하기 (0) | 2023.07.02 |
엑셀 VBA 사용자 정의 폼에서 그림 표시와 셀에 추가하기 (0) | 2023.07.02 |
엑셀 VBA 무한 루프 빠져 나오거나 취소 기능 없애는 방법 (0) | 2023.06.29 |