Excel 에서 체크박스를 선택하면 다른 체크박스가 자동으로 해제되도록 하려면 어떻게 하나요?
실무에서 Excel 을 사용해 긴 구매 목록을 관리할 때 특정 카테고리나 그룹 내에서 단 하나의 항목만 선택되도록 해야 하는 상황이 자주 발생합니다。 예를 들어, 특정 카테고리가 예산을 초과할 경우 각 그룹에서 하나의 항목만 유지하도록 재선택해야 할 수도 있습니다。 항목 수가 많아질수록 체크박스를 수동으로 관리하는 것은 비효율적이며 실수도 잦아집니다。 이 과정을 간소화하고 오류를 줄이기 위해, 그룹 내에서 새로운 체크박스를 선택하면 이전에 선택된 항목이 자동으로 해제되도록 설정할 수 있습니다。 이를 통해 항상 각 카테고리당 하나의 선택만 유지되며 작업 흐름이 더욱 효율적이고 신뢰할 수 있게 됩니다。 본 문서에서는 이를 구현하는 단계별 가이드를 제공하여 업무 효율성을 높이는 데 도움을 드립니다。
VBA 코드로 새 체크박스를 선택하면 다른 체크박스가 자동으로 해제되도록 설정하기
프로세스를 설명하기 위해 위 영상과 같은 상황을 가정해 보겠습니다。 여기에는CheckBox1부터CheckBox10까지 총 10 개의 체크박스가 있으며, 서로 다른 구매 카테고리를 나타내는 세 개의 그룹으로 구성되어 있습니다。
✅ 그룹 구조:
- 그룹 1: CheckBox1, CheckBox2, CheckBox3
- 그룹 2: CheckBox4, CheckBox5, CheckBox6, CheckBox7
- 그룹 3: CheckBox8, CheckBox9, CheckBox10
각 그룹 내에서는 한 번에 하나의 체크박스만 선택되어야 합니다。 새 체크박스를 선택하면 동일 그룹의 나머지 체크박스는 자동으로 해제됩니다。 이는 라디오 버튼 동작과 유사하지만 체크박스를 사용한다는 점에서 차이가 있습니다。
🧩 VBA 솔루션 적용 단계:
- VBA 편집기를 엽니다:체크박스가 있는 시트 탭을 마우스 오른쪽 버튼으로 클릭한 후코드 보기를 선택하세요。
- 다음 코드를워크시트 코드 창에 붙여넣으세요:
- VBA 편집기를 닫고(Alt + Q) Excel 로 돌아와 체크박스를 테스트하세요。

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 📌 중요 참고 사항:
- 체크박스의이름속성(레이블 아님)이 코드 내 이름과 정확히 일치하는지 확인하세요。
- 그룹 구성은 다음 배열 줄에서 정의됩니다:
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10") - 이 VBA 는 오직ActiveX 컨트롤체크박스에서만 작동하며, 폼 컨트롤에서는 작동하지 않습니다。
- 이 자동화 기능을 사용하려면 매크로를 활성화해야 합니다。
📺 데모 영상:
🔍 문제 해결 팁:
- 중복된 체크박스 이름이 없는지 확인하세요。
- 모든 체크박스가ActiveX 컨트롤인지 확인하세요。
- 각 체크박스 프로시저는 반드시
SetCheckBoxes를 올바르게 호출해야 합니다。 - 다른 워크시트 간 시나리오는 클래스 모듈 또는 중앙 집중식 제어를 통해 조정이 필요합니다。
💡 대안 해결책:기본 제공 단일 선택 동작을 원하시면폼 컨트롤의 옵션 버튼을 사용할 수 있습니다. 그러나 고급 레이아웃 및 로직 제어를 위해서는 VBA 와 체크박스 조합이 더 유연합니다。
✨ 팁:Kutools for Excel 같은 도구를 사용하면 코딩 없이도 GUI 기반으로 체크박스를 쉽게 설정하고 관리할 수 있습니다。
데모: Excel 에서 체크박스를 선택하면 다른 체크박스가 자동으로 해제되도록 설정하기
최고의 Office 생산성 도구
| 🤖 | KUTOOLS AI 도우미: 다음을 기반으로 데이터 분석 혁신하기:지능형 실행 | 코드 생성| 사용자 지정 수식 생성 | 데이터 분석 및 차트 생성| 향상된 함수 호출… |
| 인기 기능:찾기, 강조 표시 또는 중복 표시 | 빈 행 삭제 | 데이터 손실 없이 열 결합 또는 셀 제거 | 공식을 사용하지 않는 반올림... | |
| 슈퍼 LOOKUP:다중 조건 VLookup | 다중 값 VLookup | 여러 시트에서 VLookup | 퍼지 매치.... | |
| 고급 드롭다운 목록:드롭다운 목록 빠르게 생성 | 종속형 드롭다운 목록 | 다중 선택 드롭다운 목록.... | |
| 열 관리자:특정 수의 열 추가|열 이동|숨겨진 열의 표시 상태 전환|범위 및 열 비교... | |
| 주요 기능:그리드 포커스 | 디자인 보기 |향상된 수식 표시줄 | 워크북 및 시트 관리자 | 자원 라이브러리(자동 텍스트)| 날짜 선택기 | 워크시트 병합 | 암호화/셀 해독 | 목록으로 이메일 보내기 | 슈퍼 필터 | 특수 필터(굵은 글꼴이 있는 셀 필터링/기울임꼴/취소선。。。) 。。。 | |
| 상위 15 도구 모음:12 텍스트도구(텍스트 추가,특정 문자 삭제, ...)| 50+차트유형(간트 차트, ...)| 40+ 실용적인수식(생일을 기준으로 나이 계산, ...)| 19 삽입도구(QR 코드 삽입,경로에서 그림 삽입, ...)| 12 변환도구(단어로 변환하기,환율 변환, ...)| 7 병합 및 분할도구(고급 행 병합,셀 분할, ...)|그 외 더 많은 기능 |
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 앱을 사용하는 팀에 이상적입니다。
- 올인원 스위트— Excel, Word, Outlook 및 PowerPoint 애드인 + Office Tab Pro
- 하나의 설치 프로그램, 하나의 라이선스— 몇 분 안에 설정 완료(MSI 지원)
- 함께 사용할수록 더 효과적입니다— Office 앱 전반에서 생산성 향상
- 30 일간 모든 기능 무료 체험— 등록이나 신용카드 필요 없음
- 최고의 가성비— 개별 애드인 구매 대비 절약