Skip to main content

Excel에서 두 개의 리스트 박스 간에 항목을 빠르게 이동하는 방법은 무엇입니까?

Author: Sun Last Modified: 2025-05-20

아래 스크린샷에 표시된 대로 필요에 따라 한 리스트 박스에서 다른 리스트 박스로 항목을 이동해 본 적이 있습니까? 여기에서는 Excel에서 이 작업에 대해 설명하겠습니다.

a screenshot showing the listboxes before moving items a screenshot of an arrow a screenshot showing the listboxes after moving items

리스트 박스 간 항목 이동


리스트 박스 간 항목 이동

이 작업을 완료하는 데 도움이 되는 내장 함수는 없지만, 제가 도움을 줄 수 있는 VBA 코드가 있습니다.

1. 먼저 Admin_Lists라는 새 워크시트에 리스트 박스에 표시될 항목으로 사용할 데이터 목록을 생성해야 합니다.

a screenshot of the source data

2. 그런 다음 이러한 데이터를 선택하고 이름 상자로 이동하여 이름을 ItemList로 지정합니다. 스크린샷 보기:

a screenshot of naming the source data in the Name box

3. 그런 다음 두 개의 리스트 박스를 포함할 워크시트에서 개발 도구 > 삽입 > 리스트 박스(Active X 컨트롤)를 클릭하고 두 개의 리스트 박스를 그립니다. 스크린샷 보기:

a screenshot of selecting the List Box control under the Developer tab a screenshot of the right arrow a screenshot showing two created list boxes

개발 도구 탭이 리본에서 숨겨져 있는 경우, Excel 2007/2010/2013 리본에서 개발 도구 탭을 어떻게 표시합니까? 이 기사에서는 이를 표시하는 방법을 알려드립니다.

4. 그런 다음 개발 도구 > 삽입 > 명령 단추(Active X 컨트롤)를 클릭하고 두 리스트 박스 사이에 네 개의 단추를 그립니다. 스크린샷 보기:

a screenshot of selecting command button control a screenshot of a right arrow 1 a screenshot showing the created command buttons

이제 네 개의 명령 단추를 새 이름으로 바꿉니다.

5. 첫 번째 명령 단추를 선택하고 속성을 클릭한 다음 속성 창에서 이름을 BTN_moveAllRight로 지정하고 캡션 옆의 텍스트 상자에 >>를 입력합니다. 스크린샷 보기:

a screenshot showing how to changing the properties of the command button

6. 5단계를 반복하여 마지막 세 명령 단추의 이름을 아래와 같이 변경하고 캡션에 다른 화살표를 입력합니다. 스크린샷 보기:

BTN_MoveSelectedRight

BTN_moveAllLeft

BTN_MoveSelectedLeft

a screenshot of the second command button after changing the properties a screenshot of the third command button after changing the properties a screenshot of the fourth command button after changing the properties

7. 리스트 박스와 명령 단추가 포함된 워크시트 이름을 마우스 오른쪽 버튼으로 클릭하고 상황 메뉴에서 코드 보기(View Code)를 선택합니다. 스크린샷 보기:

a screenshot of opening the VBA code editor

8. 아래 매크로 코드를 모듈 스크립트에 복사하여 붙여넣고 코드를 저장한 후 Microsoft Visual Basic for Applications 창을 닫습니다. 스크린샷 보기:

VBA: 두 리스트 박스 간 항목 이동

Private Sub Worksheet_Activate()
'UpdatebyExtendoffice20171117
    Dim xCell As Range
    Dim xRg As Range
    Set xRg = Sheets("Admin_Lists").Range("ItemList")
    Me.ListBox1.Clear
    Me.ListBox2.Clear
    With Me.ListBox1
        .LinkedCell = ""
        .ListFillRange = ""
        For Each xCell In xRg
            If xCell <> "" Then
                .AddItem xCell.Value
            End If
        Next xCell
    End With
    Me.ListBox1.MultiSelect = fmMultiSelectMulti
    Me.ListBox2.MultiSelect = fmMultiSelectMulti
End Sub

Private Sub BTN_MoveSelectedLeft_Click()
    Call moveSigle(Me.ListBox2, Me.ListBox1)
End Sub

Private Sub BTN_MoveSelectedRight_Click()
    Call moveSigle(Me.ListBox1, Me.ListBox2)
End Sub

Private Sub BTN_moveAllLeft_Click()
    Call moveAll(Me.ListBox2, Me.ListBox1)
End Sub

Private Sub BTN_moveAllRight_Click()
    Call moveAll(Me.ListBox1, Me.ListBox2)
End Sub

Sub moveAll(xListBox1 As Object, xListBox2 As Object)
    Dim I As Long
    For I = 0 To xListBox1.ListCount - 1
        xListBox2.AddItem xListBox1.List(I)
    Next I
    xListBox1.Clear
End Sub

Sub moveSigle(xListBox1 As Object, xListBox2 As Object)
    Dim I As Long
    For I = 0 To xListBox1.ListCount - 1
        If I = xListBox1.ListCount Then Exit Sub
        If xListBox1.Selected(I) = True Then
            xListBox2.AddItem xListBox1.List(I)
            xListBox1.RemoveItem I
            I = I - 1
        End If
    Next
End Sub

a screenshot showing how to use the VBA code

9. 그런 다음 다른 워크시트로 이동한 후 리스트 박스가 포함된 워크시트로 돌아갑니다. 이제 첫 번째 리스트 박스에 목록 데이터가 나열되어 있는 것을 볼 수 있습니다. 그리고 명령 단추를 클릭하여 두 리스트 박스 간에 항목을 이동합니다.

a screenshot showing the source data in one list box after running the VBA code

선택 영역 이동

a screenshot of moving items from one list box to another one by one a screenshot of the arrow a screenshot showing two items have been moved to the right list box

모두 이동

a screenshot of marking which command button can be used to move all items from one list to another at the same time a screenshot of arrow 2 a screenshot showing all items are moved from one list box to another at the same time

최고의 오피스 생산성 도구

? Kutools AI Aide: 지능형 실행, 코드 생성, 사용자 정의 수식 작성, 데이터 분석 및 차트 생성, Kutools 함수 호출을 기반으로 데이터 분석 혁신…
인기 기능: 중복 찾기, 강조 또는 식별   |  빈 행 삭제   |  데이터 손실 없이 열 또는 셀 결합   |   수식 없이 반올림 ...
슈퍼 LOOKUP: 다중 조건 VLookup    다중 값 VLookup  |   다중 시트 조회   |   퍼지 매치 ....
고급 드롭다운 목록: 빠르게 드롭다운 목록 만들기   |  종속 드롭다운 목록   |  다중 선택 드롭다운 목록 ....
열 관리자: 특정 개수의 열 추가  |  열 이동  |  숨겨진 열의 가시성 상태 전환  |  범위 및 열 비교 ...
주요 기능: 그리드 포커스   |  디자인 보기   |   향상된 수식 표시줄    통합 문서 및 시트 관리자   |  자동 텍스트 라이브러리 (Auto Text)   |  날짜 선택기   |  데이터 병합   |  셀 암호화/해독    목록으로 이메일 보내기   |  슈퍼 필터   |   특수 필터 (굵은 글꼴/이탤릭체/취소선 필터링...) ...
최고의 15가지 도구 모음12개의 텍스트 도구 (텍스트 추가, 특정 문자 삭제, ...)   |   50+ 차트 유형 (간트 차트, ...)   |   40+ 실용적인 수식 (생일을 기반으로 나이 계산, ...)   |   19개 삽입 도구 (QR 코드 삽입, 경로에서 그림 삽입, ...)   |   12개 변환 도구 (단어로 변환하기, 통화 변환, ...)   |   7개 병합 및 분할 도구 (고급 행 병합, 셀 분할, ...)   |   ... 그리고 더 많은 기능들

Kutools for Excel로 엑셀 스킬을 강화하고 지금까지 경험하지 못한 효율성을 체험하세요. Kutools for Excel은 생산성을 향상시키고 시간을 절약할 수 있는 300개 이상의 고급 기능을 제공합니다.  가장 필요한 기능을 얻으려면 여기를 클릭하세요...


Office Tab은 탭 인터페이스를 Office에 제공하여 작업을 훨씬 쉽게 만듭니다.

  • Word, Excel, PowerPoint에서 탭 편집 및 읽기를 활성화하세요.
  • 새 창 대신 동일한 창의 새 탭에서 여러 문서를 열고 생성하세요.
  • 생산성을 50% 향상시키고 매일 수백 번의 마우스 클릭을 줄입니다!