Skip to main content

Excel에서 체크박스가 선택되었을 때 다른 체크박스의 선택을 해제하려면 어떻게 해야 하나요?

Author: Siluvia Last Modified: 2025-05-20

아래 비디오에 나와 있는 것처럼 구매 목록을 최종 확정해야 한다고 가정해 보겠습니다. 목록을 확인하는 동안 일부 카테고리의 선택된 항목이 예산을 초과하여 다시 선택해야 하는 상황이 발생했습니다. 목록이 너무 길기 때문에 이제 더 효율적인 방법으로 카테고리 내에서 새로운 체크박스를 선택할 때 원래 선택된 체크박스를 자동으로 해제하는 방법이 필요합니다. 이 튜토리얼에서는 단계별로 방법을 설명하여 여러분이 이를 해결할 수 있도록 도와드리겠습니다.

VBA 코드를 사용하여 새 체크박스가 선택될 때 다른 체크박스의 선택을 해제하기


VBA 코드를 사용하여 새 체크박스가 선택될 때 다른 체크박스의 선택을 해제하기

위 데모에 표시된 대로 Checkbox1, Checkbox2, Checkbox3, ..., Checkbox10이라는 이름의 10개의 체크박스는 3개의 그룹으로 나뉘어 있으며 표의 서로 다른 범주에 위치하고 있습니다.

이 예제에서는 Checkbox1, 2, 3이 한 그룹에 속하고 Checkbox4, 5, 6, 7은 다른 그룹에 속하며 Checkbox8, 9, 10은 같은 그룹에 속해 있습니다. 각 그룹에서는 한 번에 하나의 체크박스만 선택할 수 있습니다. 체크박스가 선택되면 다른 체크박스는 자동으로 선택 해제됩니다.

이제 다음 VBA 코드를 적용하여 이 문제를 해결하는 방법을 살펴보겠습니다.

1. 시트 탭을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 보기 코드를 클릭합니다.

A screenshot showing the option View Code in the context menu of a sheet tab in Excel

2. 열린 Microsoft Visual Basic for Applications 창에서 다음 VBA 코드를 Sheet (Code) 창에 붙여넣습니다.

A screenshot of the VBA code editor in Excel with example VBA code for managing checkboxes

VBA 코드: 새 체크박스가 선택될 때 다른 체크박스의 선택 해제하기

Dim xBol As Boolean
'Updated by Extendoffice 20220816
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 x As Long
Dim xAllArr
Dim xArrItem
Dim xI, xJ
If Not xBol Then Exit Function
'In the following line, the checkboxes enclosed in double quotes belong to the same group, and each checkbox is separated by a comma. To add more checkbox groups, please enclose the checkboxes in new double quotes.
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

참고:

1) 코드에서 Checkbox1, Checkbox2, ..., Checkbox10은 체크박스의 이름입니다.
2) 다음 줄에서 큰따옴표로 묶인 체크박스들은 같은 그룹에 속하며, 각 체크박스는 쉼표로 구분됩니다. 추가적인 체크박스 그룹을 생성하려면 새로운 큰따옴표로 체크박스들을 묶어주세요.
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10")
3) 체크박스는 ActiveX Control 체크박스입니다.

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

그런 다음 그룹 내에서 새 체크박스를 선택하면 아래 GIF에 표시된 것처럼 기존에 선택된 체크박스가 자동으로 선택 해제됩니다.


데모: Excel에서 체크박스가 선택되었을 때 다른 체크박스의 선택 해제하기

Kutools for Excel: 손끝에서 바로 사용할 수 있는 300개 이상의 유용한 도구들! 영구적으로 무료인 AI 기능을 즐기세요! 지금 다운로드하세요!

최고의 오피스 생산성 도구

? 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% 향상시키고 매일 수백 번의 마우스 클릭을 줄입니다!