Skip to main content

Kutools for Office — 하나의 패키지. 다섯 가지 도구. 더 많은 일을 처리하세요.

Excel에서 그룹 내 하나의 체크박스만 선택되도록 허용하려면 어떻게 해야 합니까?

Author Siluvia Last modified

일부 Excel 응용 프로그램에서는 사용자가 체크박스 그룹에서 하나의 옵션만 선택하도록 허용해야 할 수 있습니다. 이는 라디오 버튼의 동작을 모방하는 것입니다. 예를 들어, 아래 스크린샷에 나와 있는 것처럼 row2에서 하나의 체크박스를 선택하면 그룹 내 다른 모든 체크박스가 즉시 비활성화되어 언제든지 단일 선택만 가능하게 됩니다. 이 제한은 설문지, 단일 답변 선택 목록 또는 여러 답변을 방지하려는 대시보드에서 유용합니다. Excel에서 직접 이 기능을 구현하려면 VBA 코드 사용과 같은 특정 기술이 필요합니다. 이 문서에서는 단계별 지침과 실제 사용을 위한 중요한 고려 사항을 포함하여 Excel에서 체크박스로 '단일 선택' 효과를 활성화하는 실질적인 솔루션을 제공합니다.

A screenshot of a group of checkboxes in Excel where only one can be selected at a time


VBA 코드로 하나의 체크박스만 선택 가능하게 만들기

다음 VBA 방법을 사용하면 그룹 내 하나의 체크박스만 선택되도록 보장할 수 있습니다. 이 솔루션은 복잡한 템플릿에서나 enable/disable 논리를 제어하는 것이 중요한 경우에 특히 유용하며, 원활하고 자동화된 경험을 제공합니다.

1. 먼저, 단일 선택을 적용하려는 위치에 체크박스를 삽입하세요. 이 솔루션에서는 ActiveX 컨트롤 체크박스를 사용해야 합니다. 양식 컨트롤 체크박스는 enable/disable 메커니즘을 직접 지원하지 않기 때문입니다. ActiveX 체크박스를 삽입하려면 개발 도구 탭 > 삽입 > ActiveX 컨트롤 > 체크 박스로 이동하세요. 다음 스크린샷에 표시된 대로 원하는 그룹 내 모든 체크박스를 배열하세요:

A screenshot showing the insertion of ActiveX Control checkboxes in Excel

2. Microsoft Visual Basic for Applications 창을 열기 위해 Alt + F11을 동시에 누르세요. 

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

A screenshot showing the option to insert a Class Module in Excel VBA

4. 속성 창(보통 왼쪽에 있음)에서 새로 생성된 클래스 모듈을 찾으세요. 해당 모듈을 클릭하고 (이름) 상자에 기본값(예: Class1)을 ClsChk로 변경하세요. 그런 다음, 다음 코드를 이 클래스 모듈의 코드 창에 복사하여 붙여넣으세요. 스크린샷을 참조하세요:

A screenshot of the Properties pane in VBA for renaming the class to 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를 누르세요. 그러면 체크박스 그룹에 대한 단일 선택 논리가 활성화됩니다. 아무 체크박스를 선택하여 동작을 테스트해 보세요. 다른 모든 체크박스는 즉시 선택 해제되고 비활성화됩니다. 현재 선택을 해제하면 모든 체크박스가 다시 활성화되어 다른 선택을 할 수 있습니다.

A screenshot of checkboxes in Excel where only one is enabled at a time after VBA code execution

참고: 그룹에서 체크박스를 추가하거나 삭제한 경우, 초기화 VBA를 다시 실행해야 합니다. 이는 코드가 실행될 때마다 이벤트 처리기가 새로고침되어 제어 그룹에 대한 모든 변경 사항이 VBA에서 올바르게 인식되도록 하기 때문입니다.

이 방법의 장점은 완전히 자동화되어 있어 사용자가 실수로 여러 옵션을 선택할 수 없다는 점입니다. 그러나 이것은 ActiveX 컨트롤에서만 작동하며, 이는 Excel 버전에 따라 제한될 수 있으며 매크로가 활성화되어야 합니다. 또한, ActiveX 컨트롤이나 매크로가 포함된 워크북을 다른 사용자에게 배포하려면 추가적인 보안 권한이 필요할 수 있습니다.


관련 기사:

최고의 오피스 생산성 도구

🤖 Kutools AI 도우미: 데이터 분석에 혁신을 가져옵니다. 방법: 지능형 실행   |  코드 생성  |  사용자 정의 수식 생성  |  데이터 분석 및 차트 생성  |  Kutools Functions 호출
인기 기능: 중복 찾기, 강조 또는 중복 표시   |  빈 행 삭제   |  데이터 손실 없이 열 또는 셀 병합   |   반올림(수식 없이) ...
슈퍼 LOOKUP: 다중 조건 VLOOKUP    다중 값 VLOOKUP  |   다중 시트 조회   |   퍼지 매치 ....
고급 드롭다운 목록: 드롭다운 목록 빠르게 생성   |  종속 드롭다운 목록   |  다중 선택 드롭다운 목록 ....
열 관리자: 지정한 수의 열 추가  |  열 이동  |  숨겨진 열의 표시 상태 전환  |  범위 및 열 비교 ...
추천 기능: 그리드 포커스   |  디자인 보기   |   향상된 수식 표시줄    통합 문서 & 시트 관리자   |  자동 텍스트 라이브러리   |  날짜 선택기   |  데이터 병합   |  셀 암호화/해독    목록으로 이메일 보내기   |  슈퍼 필터   |   특수 필터(굵게/이탤릭/취소선 필터 등) ...
15대 주요 도구 세트12 가지 텍스트 도구(텍스트 추가, 특정 문자 삭제, ...)  |  50+ 종류의 차트(간트 차트, ...)  |  40+ 실용적 수식(생일을 기반으로 나이 계산, ...)  |  19 가지 삽입 도구(QR 코드 삽입, 경로에서 그림 삽입, ...)  |  12 가지 변환 도구(단어로 변환하기, 통화 변환, ...)  |  7 가지 병합 & 분할 도구(고급 행 병합, 셀 분할, ...)  |  ... 등 다양
Kutools는 사용자가 선호하는 언어로 이용할 수 있습니다 – 영어, 스페인어, 독일어, 프랑스어, 중국어 및40개 이상의 언어 지원!

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