엑셀 메크로 리스트 박스 좀 만들어주세요

엑셀 메크로 리스트 박스 좀 만들어주세요

해 볼까요.

단계별 설명하고 예시 코드 정리합니다.

1단계: 개발 도구 활성화 및 매크로 기록 시작

  • 엑셀에서 파일 > 옵션 > 리본 사용자 지정 을 클릭합니다.

  • 오른쪽 목록에서 개발 도구 를 체크하고 확인 을 클릭합니다.

  • 개발 도구 탭에서 매크로 기록 을 클릭합니다.

  • 매크로 이름을 지정하고 확인 을 클릭합니다.

2단계: 사용자 정의 폼 (UserForm) 생성 및 리스트박스 추가

  • 개발 도구 탭 > Visual Basic 을 클릭합니다.

  • Visual Basic Editor에서 삽입 > 사용자 정의 폼 을 클릭합니다.

  • 도구 상자에서 리스트박스 를 사용자 정의 폼에 추가합니다.

  • 리스트박스의 속성 창에서 MultiSelectfmMultiSelectExtended 로 설정합니다. (여러 항목 선택 가능)

  • 리스트박스의 이름을 lstSearch 로 변경합니다.

3단계: 검색 기능 및 결과 표시 매크로 작성

  • 사용자 정의 폼에 명령 단추 를 추가하고 이름을 cmdSearch 로 변경합니다.

  • 사용자 정의 폼 코드 창에 다음 코드를 입력합니다.

Private Sub cmdSearch_Click()

Dim ws As Worksheet

Dim lastRow As Long

Dim i As Long

Dim searchStr As String

searchStr = InputBox("검색어를 입력하세요.")

If searchStr = "" Then Exit Sub

Set ws = ThisWorkbook.Sheets("시트2")

lastRow = ws.Cells(Rows.Count, "A").End(xlUp).Row

lstSearch.Clear

For i = 1 To lastRow

If InStr(ws.Cells(i, "A").Value, searchStr) > 0 Then

lstSearch.AddItem ws.Cells(i, "A").Value & " - " & ws.Cells(i, "B").Value & " - " & ws.Cells(i, "C").Value ' 필요한 열 추가

End If

Next i

End Sub

Private Sub lstSearch_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

Dim selectedItems As Variant

Dim i As Long

Dim targetCell As Range

selectedItems = lstSearch.List

If IsArray(selectedItems) Then

Set targetCell = ThisWorkbook.Sheets("시트1").Range("A1") ' 시트1의 원하는 셀로 변경

For i = LBound(selectedItems) To UBound(selectedItems)

targetCell.Offset(i, 0).Value = selectedItems(i)

Next i

End If

Unload Me

End Sub

4단계: 시트1 표 클릭 시 사용자 정의 폼 표시 매크로 작성

  • 시트1 코드 창에 다음 코드를 입력합니다.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("A1:C10")) Is Nothing Then ' 표 범위 지정

UserForm1.Show

End If

End Sub

5단계: 매크로 기록 종료 및 저장

  • 개발 도구 탭 > 매크로 기록 중지 를 클릭합니다.

  • 엑셀 파일을 매크로 사용 통합 문서 (*.xlsm) 로 저장합니다.

사용 방법:

  1. 시트1의 지정된 표 범위(A1:C10)를 클릭합니다.

  2. 사용자 정의 폼이 나타나면 검색 버튼을 클릭하고 검색어를 입력합니다.

  3. 리스트박스에 검색 결과가 표시되면 원하는 항목을 선택하고 더블 클릭합니다.

  4. 선택한 항목이 시트1의 지정된 셀(A1)부터 아래로 입력됩니다.

  • 예시이이니 필요에 따라 수정하여 사용할 수 있습니다.

  • 시트 이름, 표 범위, 셀 위치 등을 실제 환경에 맞게 변경해야 하구요.

  • 더 복잡한 검색 조건이나 결과 표시 형식이 필요한 경우 코드를 추가하거나 수정해야 합니다.

  • 꼭 성공하세요!

광고 [X]를 누르면 내용이 해제됩니다

AI 분석 및 채팅

3/3
시스템 리소스 로딩 중... 0%

여기를 클릭하면 빠른 로딩(가속)이 가능합니다.