KutoolsforOffice— 하나의 솔루션, 다섯 가지 강력한 도구。적은 노력으로 더 큰 성과。

Excel 에서 체크박스를 선택하면 다른 체크박스가 자동으로 해제되도록 하려면 어떻게 하나요?

작성자Siluvia수정 날짜

실무에서 Excel 을 사용해 긴 구매 목록을 관리할 때 특정 카테고리나 그룹 내에서 단 하나의 항목만 선택되도록 해야 하는 상황이 자주 발생합니다。 예를 들어, 특정 카테고리가 예산을 초과할 경우 각 그룹에서 하나의 항목만 유지하도록 재선택해야 할 수도 있습니다。 항목 수가 많아질수록 체크박스를 수동으로 관리하는 것은 비효율적이며 실수도 잦아집니다。 이 과정을 간소화하고 오류를 줄이기 위해, 그룹 내에서 새로운 체크박스를 선택하면 이전에 선택된 항목이 자동으로 해제되도록 설정할 수 있습니다。 이를 통해 항상 각 카테고리당 하나의 선택만 유지되며 작업 흐름이 더욱 효율적이고 신뢰할 수 있게 됩니다。 본 문서에서는 이를 구현하는 단계별 가이드를 제공하여 업무 효율성을 높이는 데 도움을 드립니다。


VBA 코드로 새 체크박스를 선택하면 다른 체크박스가 자동으로 해제되도록 설정하기

프로세스를 설명하기 위해 위 영상과 같은 상황을 가정해 보겠습니다。 여기에는CheckBox1부터CheckBox10까지 총 10 개의 체크박스가 있으며, 서로 다른 구매 카테고리를 나타내는 세 개의 그룹으로 구성되어 있습니다。

✅ 그룹 구조:

  • 그룹 1: CheckBox1, CheckBox2, CheckBox3
  • 그룹 2: CheckBox4, CheckBox5, CheckBox6, CheckBox7
  • 그룹 3: CheckBox8, CheckBox9, CheckBox10

각 그룹 내에서는 한 번에 하나의 체크박스만 선택되어야 합니다。 새 체크박스를 선택하면 동일 그룹의 나머지 체크박스는 자동으로 해제됩니다。 이는 라디오 버튼 동작과 유사하지만 체크박스를 사용한다는 점에서 차이가 있습니다。

🧩 VBA 솔루션 적용 단계:

  1. VBA 편집기를 엽니다:체크박스가 있는 시트 탭을 마우스 오른쪽 버튼으로 클릭한 후코드 보기를 선택하세요。
  2. 코드 메뉴 보기
  3. 다음 코드를워크시트 코드 창에 붙여넣으세요:
  4. Dim xBol As Boolean
    'Updated by Extendoffice
    
    Private Sub CheckBox1_Change(): SetCheckBoxes "CheckBox1": End Sub
    Private Sub CheckBox2_Change(): SetCheckBoxes "CheckBox2": End Sub
    Private Sub CheckBox3_Change(): SetCheckBoxes "CheckBox3": End Sub
    Private Sub CheckBox4_Change(): SetCheckBoxes "CheckBox4": End Sub
    Private Sub CheckBox5_Change(): SetCheckBoxes "CheckBox5": End Sub
    Private Sub CheckBox6_Click(): SetCheckBoxes "CheckBox6": End Sub
    Private Sub CheckBox7_Click(): SetCheckBoxes "CheckBox7": End Sub
    Private Sub CheckBox8_Click(): SetCheckBoxes "CheckBox8": End Sub
    Private Sub CheckBox9_Click(): SetCheckBoxes "CheckBox9": End Sub
    Private Sub CheckBox10_Click(): SetCheckBoxes "CheckBox10": End Sub
    
    Private Function SetCheckBoxes(mCheckBoxName As String)
        Dim xAllArr, xArrItem
        Dim xI, xJ
        If Not xBol Then Exit Function
        xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", _
                       "CheckBox4,CheckBox5,CheckBox6,CheckBox7", _
                       "CheckBox8,CheckBox9,CheckBox10")
        For xI = LBound(xAllArr) To UBound(xAllArr)
            If InStr(xAllArr(xI), mCheckBoxName) > 0 Then
                xBol = False
                xArrItem = Split(xAllArr(xI), ",")
                For xJ = LBound(xArrItem) To UBound(xArrItem)
                    If xArrItem(xJ) <> mCheckBoxName Then
                        Me.OLEObjects(xArrItem(xJ)).Object.Value = False
                    End If
                Next
            End If
        Next
        xBol = True
    End Function
    
    Private Sub Worksheet_Activate(): xBol = True: End Sub
    Private Sub Worksheet_SelectionChange(ByVal Target As Range): xBol = True: End Sub
  5. VBA 편집기를 닫고(Alt + Q) Excel 로 돌아와 체크박스를 테스트하세요。

📌 중요 참고 사항:

  • 체크박스의이름속성(레이블 아님)이 코드 내 이름과 정확히 일치하는지 확인하세요。
  • 그룹 구성은 다음 배열 줄에서 정의됩니다:
    xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10")
  • 이 VBA 는 오직ActiveX 컨트롤체크박스에서만 작동하며, 폼 컨트롤에서는 작동하지 않습니다。
  • 이 자동화 기능을 사용하려면 매크로를 활성화해야 합니다。

📺 데모 영상:

🔍 문제 해결 팁:

  • 중복된 체크박스 이름이 없는지 확인하세요。
  • 모든 체크박스가ActiveX 컨트롤인지 확인하세요。
  • 각 체크박스 프로시저는 반드시SetCheckBoxes를 올바르게 호출해야 합니다。
  • 다른 워크시트 간 시나리오는 클래스 모듈 또는 중앙 집중식 제어를 통해 조정이 필요합니다。

💡 대안 해결책:기본 제공 단일 선택 동작을 원하시면폼 컨트롤의 옵션 버튼을 사용할 수 있습니다. 그러나 고급 레이아웃 및 로직 제어를 위해서는 VBA 와 체크박스 조합이 더 유연합니다。

✨ 팁:Kutools for Excel 같은 도구를 사용하면 코딩 없이도 GUI 기반으로 체크박스를 쉽게 설정하고 관리할 수 있습니다。


데모: Excel 에서 체크박스를 선택하면 다른 체크박스가 자동으로 해제되도록 설정하기

 
Kutools for Excel: 손끝에서 사용할 수 있는 300 가지 이상의 유용한 도구! 더 스마트하고 빠른 작업을 위한 AI 기반 기능을 즐겨보세요!지금 다운로드하세요!

최고의 Office 생산성 도구

🤖KUTOOLS AI 도우미: 다음을 기반으로 데이터 분석 혁신하기:지능형 실행   |  코드 생성|  사용자 지정 수식 생성  |  데이터 분석 및 차트 생성|  향상된 함수 호출
인기 기능:찾기, 강조 표시 또는 중복 표시   |  빈 행 삭제   |  데이터 손실 없이 열 결합 또는 셀 제거   |  공식을 사용하지 않는 반올림...
슈퍼 LOOKUP:다중 조건 VLookup  |  다중 값 VLookup  |   여러 시트에서 VLookup   |   퍼지 매치....
고급 드롭다운 목록:드롭다운 목록 빠르게 생성   |  종속형 드롭다운 목록   |  다중 선택 드롭다운 목록....
열 관리자:특정 수의 열 추가|열 이동|숨겨진 열의 표시 상태 전환|범위 및 열 비교...
주요 기능:그리드 포커스   |  디자인 보기   |향상된 수식 표시줄   | 워크북 및 시트 관리자   |  자원 라이브러리(자동 텍스트)|  날짜 선택기   |  워크시트 병합  |  암호화/셀 해독   | 목록으로 이메일 보내기   |  슈퍼 필터   |   특수 필터(굵은 글꼴이 있는 셀 필터링/기울임꼴/취소선。。。) 。。。
상위 15 도구 모음:12 텍스트도구(텍스트 추가,특정 문자 삭제, ...)|   50+차트유형(간트 차트, ...)|   40+ 실용적인수식(생일을 기준으로 나이 계산, ...)|   19 삽입도구(QR 코드 삽입,경로에서 그림 삽입, ...)|   12 변환도구(단어로 변환하기,환율 변환, ...)|   7 병합 및 분할도구(고급 행 병합,셀 분할, ...)|그 외 더 많은 기능
Kutools 를 선호하는 언어로 사용하세요 – 영어, 스페인어, 독일어, 프랑스어, 중국어 및 40+개 이상의 언어를 지원합니다!

Kutools for Excel 로 Excel 역량을 한 단계 업그레이드하고 전례 없는 효율성을 경험하세요。Kutools for Excel 는 생산성과 저장 시간을 향상시키는 300 개 이상의 고급 기능을 제공합니다。가장 필요한 기능을 지금 바로 확인하세요。。。


Office Tab 가 Office 에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만들어 줍니다

  • Word, Excel, PowerPoint 에서 탭 기반 편집 및 읽기 기능을 활성화합니다, Publisher, Access, Visio 및 Project 에서도 사용 가능합니다。
  • 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 생성할 수 있습니다。
  • 50% 만큼 생산성을 높이고 매일 수백 번의 마우스 클릭을 줄여줍니다!

모든 Kutools 애드인。 하나의 설치 프로그램

Kutools for Office스위트 번들은 Excel, Word, Outlook 및 PowerPoint 용 애드인과 Office Tab Pro 를 포함하며, 다양한 Office 앱을 사용하는 팀에 이상적입니다。

ExcelWordOutlookTabsPowerPoint
  • 올인원 스위트— Excel, Word, Outlook 및 PowerPoint 애드인 + Office Tab Pro
  • 하나의 설치 프로그램, 하나의 라이선스— 몇 분 안에 설정 완료(MSI 지원)
  • 함께 사용할수록 더 효과적입니다— Office 앱 전반에서 생산성 향상
  • 30 일간 모든 기능 무료 체험— 등록이나 신용카드 필요 없음
  • 최고의 가성비— 개별 애드인 구매 대비 절약