Skip to main content

Excel에서 ActiveX 목록 상자의 선택 항목을 저장하거나 유지하려면 어떻게 해야 하나요?

Author: Siluvia Last Modified: 2025-08-06

일부 목록 상자를 만들고 해당 목록 상자에서 선택 항목을 지정했지만, 통합 문서를 닫았다가 다시 열면 이러한 목록 상자의 모든 선택 항목이 사라집니다. 통합 문서를 닫았다가 다시 열 때마다 목록 상자에서 이전에 선택한 항목들을 유지하고 싶으신가요? 이 문서의 방법이 도움이 될 수 있습니다.

Excel에서 VBA 코드를 사용하여 ActiveX 목록 상자의 선택 항목 저장 또는 유지하기


Excel에서 VBA 코드를 사용하여 ActiveX 목록 상자의 선택 항목 저장 또는 유지하기

아래 VBA 코드는 Excel에서 ActiveX 목록 상자의 선택 항목을 저장하거나 유지하는 데 도움이 됩니다. 아래 단계를 따르세요.

1. 선택 항목을 유지하려는 ActiveX 목록 상자가 포함된 통합 문서에서 Alt + F11 키를 동시에 눌러 Microsoft Visual Basic for Applications 창을 엽니다.

2. Microsoft Visual Basic for Applications 창에서 왼쪽 창에 있는 ThisWorkbook을 두 번 클릭하여 ThisWorkbook 코드 창을 엽니다. 그런 다음 다음 VBA 코드를 코드 창에 복사합니다.

VBA 코드: Excel에서 ActiveX 목록 상자의 선택 항목 저장하기

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim I As Long
    Dim J As Long
    Dim K As Long
    Dim KK As Long
    Dim xSheet As Worksheet
    Dim xListBox As Object
    On Error GoTo Label
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    K = 0
    KK = 0
    If Not Sheets("ListBox Data") Is Nothing Then
        Sheets("ListBox Data").Delete
    End If
Label:
    Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "ListBox Data"
    Set xSheet = Sheets("ListBox Data")
    For I = 1 To Sheets.Count
        For Each xListBox In Sheets(I).OLEObjects
            If xListBox.Name Like "ListBox*" Then
                With xListBox.Object
                For J = 0 To .ListCount - 1
                    If .Selected(J) Then
                        xSheet.Range("A1").Offset(K, KK).Value = "True"
                    Else
                        xSheet.Range("A1").Offset(K, KK).Value = "False"
                    End If
                    K = K + 1
                Next
                End With
                K = 0
                KK = KK + 1
            End If
        Next
    Next
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

Private Sub Workbook_Open()
    Dim I As Long
    Dim J As Long
    Dim KK As Long
    Dim xRg As Range
    Dim xCell As Range
    Dim xListBox As Object
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    KK = 0
    For I = 1 To Sheets.Count - 1
        For Each xListBox In Sheets(I).OLEObjects
            If xListBox.Name Like "ListBox*" Then
                With xListBox.Object
                    Set xRg = Intersect(Sheets("ListBox Data").Range("A1").Offset(0, KK).EntireColumn, Sheets("ListBox Data").UsedRange)
                    For J = 1 To .ListCount
                        Set xCell = xRg(J)
                        If xCell.Value = "True" Then
                            .Selected(J - 1) = True
                        End If
                    Next
                    KK = KK + 1
                End With
            End If
        Next
    Next
    Sheets("ListBox Data").Delete
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

a screenshot showing how to use the VBA code

3. Alt + Q 키를 눌러 Microsoft Visual Basic for Applications 창을 닫습니다.

4. 이제 통합 문서를 Excel 매크로 사용 가능 통합 문서로 저장해야 합니다. 파일 > 다른 이름으로 저장 > 찾아보기를 클릭하세요.

a screenshot of opening the Save As dialog box

5. 다른 이름으로 저장 대화 상자에서 통합 문서를 저장할 폴더를 선택하고 필요에 따라 이름을 변경한 후, 저장 형식 드롭다운 목록에서 Excel 매크로 사용 가능 통합 문서를 선택하고 마지막으로 저장 버튼을 클릭합니다. 스크린샷 참조:

a screenshot of saving the workbook as an Excel Macro-Enabled Workbook

목록 상자를 업데이트할 때마다 통합 문서를 저장하세요. 그러면 통합 문서를 다시 열었을 때 이전에 선택한 모든 항목들이 목록 상자에 유지됩니다.

참고: 통합 문서를 저장할 때, “ListBox Data”라는 이름의 워크시트가 자동으로 모든 워크시트의 끝에 생성됩니다. 이 워크시트는 통합 문서가 닫힐 때 자동으로 사라지므로 무시해도 됩니다.


최고의 오피스 생산성 도구

🤖 Kutools AI Aide: 지능형 실행을 기반으로 데이터 분석 혁신 지능형 실행   |  코드 생성  |  사용자 정의 수식 생성  |  데이터 분석 및 차트 생성  |  Kutools Functions 호출
인기 기능: 중복 찾기, 강조 또는 중복 표시  |  빈 행 삭제  |  데이터 손실 없이 열 또는 셀 병합  |  반올림...
슈퍼 LOOKUP: 다중 조건 VLookup    다중 값 VLookup  |   다중 시트 조회   |   퍼지 매치 ....
고급 드롭다운 목록: 드롭다운 목록 신속 생성  |  의존형 드롭다운 목록  |  다중 선택 드롭다운 목록....
열 매니저: 지정 개수 열 추가  |  열 이동  |  숨겨진 열 표시 상태 전환 |  범위 및 열 비교 ...
주요 기능: 그리드 포커스  |  디자인 보기  |  향상된 수식 표시줄   통합 문서 & 시트 관리   |  자동 텍스트 라이브러리   |  날짜 선택기   |  데이터 병합   |  셀 암호화/해독   목록별 이메일 보내기  |  슈퍼 필터  |  특수 필터 (굵게/이탤릭/취소선 필터...)...
Top15 도구 세트12개 텍스트 도구(텍스트 추가, 특정 문자 삭제, ...)  |  50+ 차트 유형(간트 차트, ...)  |  40+ 실용 수식(생일을 기반으로 나이 계산, ...)  |  19개 삽입 도구(QR 코드 삽입, 경로에서 그림 삽입, ...)  |  12개 변환 도구(단어로 변환하기, 통화 변환, ...)  |  7개 병합 & 분할 도구(고급 행 병합, 셀 분할, ...)  |  ... 그리고 그 외
Kutools를 원하는 언어로 사용하세요 – 영어, 스페인어, 독일어, 프랑스어, 중국어 등40가지 이상의 언어를 지원합니다!

Kutools for Excel로 Excel 실력을 한 단계 업그레이드하고, 그 어떤 때보다 뛰어난 효율성을 경험하세요. Kutools for Excel은300개 이상의 고급 기능을 제공하여 생산성을 높이고 저장 시간을 줄여줍니다. 가장 필요한 기능을 지금 바로 확인하세요...


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

  • Word, Excel, PowerPoint에서 탭 기반 편집과 읽기를 활성화합니다.
  • 여러 문서를 새 창이 아닌 동일한 창의 새 탭에서 열고 생성하세요.
  • 생산성이50% 향상되며, 매일 수백 번의 마우스 클릭을 줄일 수 있습니다!