Excel에서 그룹 내 하나의 체크박스만 선택되도록 허용하려면 어떻게 해야 합니까?
일부 Excel 응용 프로그램에서는 사용자가 체크박스 그룹에서 하나의 옵션만 선택하도록 허용해야 할 수 있습니다. 이는 라디오 버튼의 동작을 모방하는 것입니다. 예를 들어, 아래 스크린샷에 나와 있는 것처럼 row2에서 하나의 체크박스를 선택하면 그룹 내 다른 모든 체크박스가 즉시 비활성화되어 언제든지 단일 선택만 가능하게 됩니다. 이 제한은 설문지, 단일 답변 선택 목록 또는 여러 답변을 방지하려는 대시보드에서 유용합니다. Excel에서 직접 이 기능을 구현하려면 VBA 코드 사용과 같은 특정 기술이 필요합니다. 이 문서에서는 단계별 지침과 실제 사용을 위한 중요한 고려 사항을 포함하여 Excel에서 체크박스로 '단일 선택' 효과를 활성화하는 실질적인 솔루션을 제공합니다.
VBA 코드로 하나의 체크박스만 선택 가능하게 만들기
다음 VBA 방법을 사용하면 그룹 내 하나의 체크박스만 선택되도록 보장할 수 있습니다. 이 솔루션은 복잡한 템플릿에서나 enable/disable 논리를 제어하는 것이 중요한 경우에 특히 유용하며, 원활하고 자동화된 경험을 제공합니다.
1. 먼저, 단일 선택을 적용하려는 위치에 체크박스를 삽입하세요. 이 솔루션에서는 ActiveX 컨트롤 체크박스를 사용해야 합니다. 양식 컨트롤 체크박스는 enable/disable 메커니즘을 직접 지원하지 않기 때문입니다. ActiveX 체크박스를 삽입하려면 개발 도구 탭 > 삽입 > ActiveX 컨트롤 > 체크 박스로 이동하세요. 다음 스크린샷에 표시된 대로 원하는 그룹 내 모든 체크박스를 배열하세요:
2. Microsoft Visual Basic for Applications 창을 열기 위해 Alt + F11을 동시에 누르세요.
3. 편집기 창에서 삽입 > 클래스 모듈을 클릭하세요. 이 단계는 여러 체크박스의 이벤트를 처리하기 위한 새로운 클래스 모듈을 생성합니다. 클래스 모듈을 사용하면 체크박스의 개수에 관계없이 각 체크박스를 개별적으로 클릭했을 때 반응할 수 있게 됩니다.
4. 속성 창(보통 왼쪽에 있음)에서 새로 생성된 클래스 모듈을 찾으세요. 해당 모듈을 클릭하고 (이름) 상자에 기본값(예: Class1)을 ClsChk로 변경하세요. 그런 다음, 다음 코드를 이 클래스 모듈의 코드 창에 복사하여 붙여넣으세요. 스크린샷을 참조하세요:
VBA 코드1: 한 번에 하나의 체크박스만 선택
Option Explicit
Public WithEvents Chk As MSForms.CheckBox
Private Sub Chk_Click()
Call SelOneCheckBox(Chk)
End Sub
Sub SelOneCheckBox(Target As Object)
Dim xObj As Object
Dim I As String
Dim n As Integer
If Target.Object.Value = True Then
I = Right(Target.Name, Len(Target.Name) - 8)
For n = 1 To ActiveSheet.OLEObjects.Count
If n <> Int(I) Then
Set xObj = ActiveSheet.OLEObjects.Item(n)
xObj.Object.Value = False
xObj.Object.Enabled = False
End If
Next
Else
I = Right(Target.Name, Len(Target.Name) - 8)
For n = 1 To ActiveSheet.OLEObjects.Count
If n <> Int(I) Then
Set xObj = ActiveSheet.OLEObjects.Item(n)
xObj.Object.Enabled = True
End If
Next
End If
End Sub
5. 다음으로, 삽입 > 모듈을 클릭하여 일반 코드 모듈을 추가하세요. 다음 코드를 모듈 창에 복사하여 붙여넣으세요. 이 코드는 위에서 정의한 이벤트 처리기에 모든 체크박스를 초기화하고 '연결'합니다:
VBA 코드2: 한 번에 하나의 체크박스만 선택
Dim xCollection As New Collection
Public Sub ClsChk_Init()
Dim xSht As Worksheet
Dim xObj As Object
Dim xChk As ClsChk
Set xSht = ActiveSheet
Set xCollection = Nothing
For Each xObj In xSht.OLEObjects
If xObj.Name Like "CheckBox**" Then
Set xChk = New ClsChk
Set xChk.Chk = CallByName(xSht, xObj.Name, VbGet)
xCollection.Add xChk
End If
Next
Set xChk = Nothing
End Sub
6. 코드를 실행하기 위해 F5를 누르세요. 그러면 체크박스 그룹에 대한 단일 선택 논리가 활성화됩니다. 아무 체크박스를 선택하여 동작을 테스트해 보세요. 다른 모든 체크박스는 즉시 선택 해제되고 비활성화됩니다. 현재 선택을 해제하면 모든 체크박스가 다시 활성화되어 다른 선택을 할 수 있습니다.
참고: 그룹에서 체크박스를 추가하거나 삭제한 경우, 초기화 VBA를 다시 실행해야 합니다. 이는 코드가 실행될 때마다 이벤트 처리기가 새로고침되어 제어 그룹에 대한 모든 변경 사항이 VBA에서 올바르게 인식되도록 하기 때문입니다.
이 방법의 장점은 완전히 자동화되어 있어 사용자가 실수로 여러 옵션을 선택할 수 없다는 점입니다. 그러나 이것은 ActiveX 컨트롤에서만 작동하며, 이는 Excel 버전에 따라 제한될 수 있으며 매크로가 활성화되어야 합니다. 또한, ActiveX 컨트롤이나 매크로가 포함된 워크북을 다른 사용자에게 배포하려면 추가적인 보안 권한이 필요할 수 있습니다.
관련 기사:
- Excel에서 체크박스를 기반으로 데이터를 필터링하려면 어떻게 해야 합니까?
- Excel에서 행이 숨겨졌을 때 체크박스를 숨기려면 어떻게 해야 합니까?
- Excel에서 체크박스로 셀이나 행을 강조하려면 어떻게 해야 합니까?
- Excel에서 여러 체크박스가 있는 드롭다운 목록을 생성하려면 어떻게 해야 합니까?
- Excel에서 체크박스를 선택했을 때 날짜 스탬프를 셀에 삽입하려면 어떻게 해야 합니까?
최고의 오피스 생산성 도구
🤖 | Kutools AI 도우미: 데이터 분석에 혁신을 가져옵니다. 방법: 지능형 실행 | 코드 생성 | 사용자 정의 수식 생성 | 데이터 분석 및 차트 생성 | Kutools Functions 호출… |
인기 기능: 중복 찾기, 강조 또는 중복 표시 | 빈 행 삭제 | 데이터 손실 없이 열 또는 셀 병합 | 반올림(수식 없이) ... | |
슈퍼 LOOKUP: 다중 조건 VLOOKUP | 다중 값 VLOOKUP | 다중 시트 조회 | 퍼지 매치 .... | |
고급 드롭다운 목록: 드롭다운 목록 빠르게 생성 | 종속 드롭다운 목록 | 다중 선택 드롭다운 목록 .... | |
열 관리자: 지정한 수의 열 추가 | 열 이동 | 숨겨진 열의 표시 상태 전환 | 범위 및 열 비교 ... | |
추천 기능: 그리드 포커스 | 디자인 보기 | 향상된 수식 표시줄 | 통합 문서 & 시트 관리자 | 자동 텍스트 라이브러리 | 날짜 선택기 | 데이터 병합 | 셀 암호화/해독 | 목록으로 이메일 보내기 | 슈퍼 필터 | 특수 필터(굵게/이탤릭/취소선 필터 등) ... | |
15대 주요 도구 세트: 12 가지 텍스트 도구(텍스트 추가, 특정 문자 삭제, ...) | 50+ 종류의 차트(간트 차트, ...) | 40+ 실용적 수식(생일을 기반으로 나이 계산, ...) | 19 가지 삽입 도구(QR 코드 삽입, 경로에서 그림 삽입, ...) | 12 가지 변환 도구(단어로 변환하기, 통화 변환, ...) | 7 가지 병합 & 분할 도구(고급 행 병합, 셀 분할, ...) | ... 등 다양 |
Kutools for Excel과 함께 엑셀 능력을 한 단계 끌어 올리고, 이전에 없던 효율성을 경험하세요. Kutools for Excel은300개 이상의 고급 기능으로 생산성을 높이고 저장 시간을 단축합니다. 가장 필요한 기능을 바로 확인하려면 여기를 클릭하세요...
Office Tab은 Office에 탭 인터페이스를 제공하여 작업을 더욱 간편하게 만듭니다
- Word, Excel, PowerPoint에서 탭 편집 및 읽기를 활성화합니다.
- 새 창 대신 같은 창의 새로운 탭에서 여러 파일을 열고 생성할 수 있습니다.
- 생산성이50% 증가하며, 매일 수백 번의 마우스 클릭을 줄여줍니다!
모든 Kutools 추가 기능. 한 번에 설치
Kutools for Office 제품군은 Excel, Word, Outlook, PowerPoint용 추가 기능과 Office Tab Pro를 한 번에 제공하여 Office 앱을 활용하는 팀에 최적입니다.





- 올인원 제품군 — Excel, Word, Outlook, PowerPoint 추가 기능 + Office Tab Pro
- 설치 한 번, 라이선스 한 번 — 몇 분 만에 손쉽게 설정(MSI 지원)
- 함께 사용할 때 더욱 효율적 — Office 앱 간 생산성 향상
- 30일 모든 기능 사용 가능 — 회원가입/카드 불필요
- 최고의 가성비 — 개별 추가 기능 구매 대비 절약