엑셀(Excel) VBA - 콤보상자에 ID 를 추가하여 선택할수 있도록 하기 |
환경 : Microsoft Excel 2010 |
이전에 만든 로그인 폼에서 ID 를 입력하는 텍스트 박스 대신 콤보박스를 넣습니다. 그리고 콤보박스에는 워크시트에 저장되어있는 아이디를 추가하여 선택할수 있도록 구현합니다.
▼ 콤보박스에서 아이디를 선택할수 있도록 하기 위해 기존에 있던 텍스트 박스를 삭제하고 콤보박스를 넣습니다. 그리고 아이디를 cboId 로 입력합니다.
▼ 콤보박스에 사용자 아이디를 넣기위해서는 어느 시점에 값을 넣으면 될까요? 폼이 로딩할 때 겠죠. 폼이 뜰 때 워크시트에 있는 데이터를 가져와서 콤보박스에 전부 집어 넣으면 됩니다. 폼이 로딩할 때 이벤트함수를 추가하기 위해 폼소스로 갑니다. 그리고 상단에 개체 선택 콤보에서 UserForm 을 선택하고 오른쪽 콤보에서 Initialize() 함수를 추가합니다.
▼ 이렇게 추가한 이벤트 함수에는 워크시트에서 불러온 ID 를 콤보에 넣는 소스가 들어가야 겠죠. 콤보에 데이터를 집어넣는 방법은 콤보의 RowSource 속성에 ID 데이터가 있는 영역을 집어 넣으면 됩니다. 그리고 ListIndex 속성값을 0 으로 하여 콤보에서 첫번째 값을 화면에 보이게 합니다.
Private Sub UserForm_Initialize() Me.cboId.RowSource = "사용자정보!A3:A5" Me.cboId.ListIndex = 0 End Sub |
▼ 이제 ID 가 로딩이 되었으니 로그인 버튼을 눌렀을 때 ID 를 콤보에서 가져와 확인하는 과정이 수정되어야 합니다. 텍스트 이름 대신 콤보박스 이름을 바꾸면 간단하게 끝납니다.
pwd = Application.VLookup(Me.cboId, loginData, 2, 0) name = Application.VLookup(Me.cboId, loginData, 3, 0) |
▼ 엑셀을 저장하고 종료한뒤 다시 띄워봅니다. 콤보에 정상적으로 ID 들이 들어가 있는 것을 확인할수 있습니다.
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀(Excel) VBA - 스크롤 막대 컨트롤 이용해서 대출상환금 구하기 (0) | 2014.12.16 |
---|---|
엑셀(Excel) VBA - 목록상자에서 다중선택하여 엑셀에 값 추가하기 (7) | 2014.12.15 |
엑셀(Excel) VBA - 폼에 배치한 컨트롤 정렬하기 (0) | 2014.12.12 |
엑셀(Excel) VBA - 목록상자 컨트롤 이용하여 목록 조회, 선택하기 (1) | 2014.12.12 |
엑셀(Excel) VBA - 사용자정의 폼의 타이틀바에서 X 버튼 제어하기 (1) | 2014.12.07 |
엑셀(Excel) VBA - 사용자 정의 폼으로 로그인 기능 만들기 3부 (6) | 2014.12.07 |
엑셀(Excel) VBA - 사용자 정의 폼으로 로그인 기능 만들기 2부 (1) | 2014.12.06 |
엑셀(Excel) VBA - 사용자 정의 폼으로 로그인 기능 만들기 1부 (0) | 2014.12.06 |