본문 바로가기

엑셀VBA

[엑셀VBA] 리스트박스에 항목(목록) 추가하기 Listbox

반응형

안녕하세요 춤추는초코칩입니다.

엑셀 함수 마법사 창을 보면, 함수 선택이란 부분이 있습니다.

사용자 정의 폼(유저 폼)에서 리스트박스(목록상자)을 활용해서 만들어 보겠습니다.

1. 리스트박스(목록상자) 추가

삽입에서 사용자 정의 폼을 추가합니다.

사용자 정의 폼에서 목록 상자를 추가합니다.

추가된 목록 상자는 아래처럼 보이게 될 겁니다.

2. 목록 추가

목록 추가는 사용자 정의 폼의 초기화 이벤트 프로시저를 설정해야 합니다.

사용자 정의 폼의 Initailize 이벤트를 선택합니다.

이제 Additem이나 List를 사용해서 항목을 추가해보겠습니다.

2-1. AddItem

AddItem은 아이템 하나하나를 추가하는 방법입니다. 아래와 같이 코드를 작성하면,

Private Sub UserForm_Initialize()

    ListBox1.AddItem "ABS"
    ListBox1.AddItem "ACCRINT"
    ListBox1.AddItem "ACCRINTM"
    ListBox1.AddItem "ACOS"
    ListBox1.AddItem "ACOSH"
    ListBox1.AddItem "ACOT"
    ListBox1.AddItem "ACOTH"
    ListBox1.AddItem "ADDRESS"

End Sub

추가된 항목이 조회되는 것을 확인할 수 있습니다.

2-2. List

List는 여러 아이템을 하나의 배열 변수로 만들고, 해당 변수를 List에 할당하는 방법입니다.

아래와 같은 코드를 작성하면, 위 예제와 같은 결과를 얻을 수 있습니다.

Private Sub UserForm_Initialize()

    Dim arrayListBox(8) As String
    
    arrayListBox(0) = "ABS"
    arrayListBox(1) = "ACCRINT"
    arrayListBox(2) = "ACCRINTM"
    arrayListBox(3) = "ACOS"
    arrayListBox(4) = "ACOSH"
    arrayListBox(5) = "ACOT"
    arrayListBox(6) = "ACOTH"
    arrayListBox(7) = "ADDRESS"
    
    Me.ListBox1.List = arrayListBox

End Sub

3. 초기값 설정. ListIndex

ListIndex는 리스트박스가 가지고 있는 항목 중 하나를 미리 선택합니다.

첫 번째 값은 0부터 시작하니 전체 항목 개수의 -1까지 움직입니다.

함수 마법사와 동일하게 "ABS"를 선택해 보겠습니다.

Private Sub UserForm_Initialize()

    Dim arrayListBox(8) As String
    
    arrayListBox(0) = "ABS"
    arrayListBox(1) = "ACCRINT"
    arrayListBox(2) = "ACCRINTM"
    arrayListBox(3) = "ACOS"
    arrayListBox(4) = "ACOSH"
    arrayListBox(5) = "ACOT"
    arrayListBox(6) = "ACOTH"
    arrayListBox(7) = "ADDRESS"
    
    Me.ListBox1.List = arrayListBox
    Me.ListBox1.ListIndex = 0

End Sub

위와 같이 ListIndex 속성을 0으로 설정하면, 사용자 정의 폼 실행 시 "ABS"가 선택되어 있는 것을 확인할 수 있습니다.

반응형