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

Excel 에서 그룹 내 체크박스 중 하나만 선택되도록 허용하려면 어떻게 하나요?

작성자Siluvia수정 날짜

일부 Excel 애플리케이션에서는 사용자가 체크박스 그룹에서 하나의 옵션만 선택할 수 있도록 해야 할 때가 있습니다. 이는 라디오 버튼와 유사한 동작을 구현하는 것입니다. 예를 들어 아래 스크린샷과 같이 2 행의 체크박스 하나를 선택하면 해당 그룹의 다른 모든 체크박스가 즉시 비활성화되어 한 번에 단일 선택만 가능하도록 제한됩니다. 이 제한은 설문지, 단일 답변 선택 목록 또는 다중 답변을 방지하고자 하는 대시보드 등에서 유용합니다. Excel 에서 이러한 기능을 직접 구현하려면 VBA 코드와 같은 특정 기법이 필요합니다. 본 문서에서는 Excel 에서 체크박스로 '단일 선택‘ 효과를 구현하는 실용적인 해결 방법을 제공하며, 단계별 지침과 실제 사용 시 고려해야 할 사항도 안내합니다。

Excel에서 한 번에 하나만 선택할 수 있는 체크박스 그룹의 스크린샷


VBA 코드를 사용하여 하나의 체크박스만 선택되도록 설정하기

다음 VBA 방법을 사용하면 그룹 내 체크박스 중 한 번에 하나만 선택되도록 보장할 수 있습니다。 이 해결 방법은 특히 원활하고 자동화된 경험을 원할 때 적합하며, 복잡한 템플릿이나 활성화/비활성화 로직을 제어해야 할 경우에 이상적입니다。

1. 먼저 단일 선택을 적용하고자 하는 위치에 체크박스를 삽입하세요。 이 해결 방법에서는 반드시ActiveX 컨트롤 체크박스를 사용해야 합니다。 폼 컨트롤 체크박스는 직접적으로 활성화/비활성화 메커니즘을 지원하지 않기 때문입니다。 ActiveX 체크박스를 삽입하려면개발 도구탭 >삽입>ActiveX 컨트롤>체크 박스를 클릭하세요。 아래 그림과 같이 원하는 그룹 내에 모든 체크박스를 배치합니다:

Excel에서 ActiveX 컨트롤 체크박스를 삽입하는 화면의 스크린샷

2. Alt+F11키를 동시에 눌러Microsoft Visual Basic for Applications창을 엽니다。

3. 편집기 창에서삽입>클래스 모듈을 클릭하세요。 이 단계는 여러 체크박스의 이벤트를 처리하기 위해 새 클래스 모듈을 생성합니다。 클래스 모듈을 사용하면 체크박스 수에 관계없이 각 체크박스 클릭에 개별적으로 반응할 수 있습니다。

Excel VBA에서 클래스 모듈을 삽입하는 옵션을 보여주는 스크린샷

4. 왼쪽에 있는속성창에서 새 클래스 모듈을 찾아 클릭한 후()이름) 상자에 기본값(예: Class1) 대신ClsChk로 이름을 변경하세요。 그런 다음 아래 스크린샷을 참고하여 이 클래스 모듈의 코드 창에 다음 코드를 복사하여 붙여넣습니다:

클래스 이름을 ClsChk로 변경하기 위한 VBA 속성 창의 스크린샷

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 코드 실행 후 Excel에서 한 번에 하나만 활성화된 상태의 체크박스 스크린샷

참고:그룹에 체크박스를 추가하거나 삭제하는 경우 초기화 VBA 를 다시 실행해야 합니다. 이는 코드가 실행될 때마다 이벤트 핸들러가 새로 고쳐져, 컨트롤 그룹의 변경 사항이 VBA 에서 정확히 인식되도록 보장하기 때문입니다。

이 방법의 장점은 완전히 자동화되어 사용자가 실수로 여러 옵션을 선택할 수 없다는 점입니다。 다만 ActiveX 컨트롤에서만 작동하므로 Excel 버전에 따라 제한될 수 있으며 매크로가 활성화되어 있어야 합니다。 또한 ActiveX 컨트롤이나 매크로가 포함된 통합 문서를 다른 사용자와 공유할 경우 추가 보안 권한이 필요할 수 있습니다。


관련 문서:

최고의 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 일간 모든 기능 무료 체험— 등록이나 신용카드 필요 없음
  • 최고의 가성비— 개별 애드인 구매 대비 절약