Excel & IT Info

아이엑셀러 닷컴, 엑셀러TV

VBA

체크리스트, 아직도 이렇게 만드시나요?

권현욱(엑셀러) 2023. 10. 30. 16:00
반응형

Excel 통합 문서에 체크 박스(CheckBox: 확인)를 삽입하는 것은 쉽습니다. [개발 도구] - [삽입] - [양식 컨트롤] - [확인란]을 선택하고 그려 넣기만 하면 됩니다. 하지만 삽입해야 하는 확인란이 많다면 성가신 일이 될 수 있습니다.

예전 강의에서 버킷 리스트와 체크 리스트를 만드는 방법에 대해 소개한 적이 있었습니다. 조건부 서식과 체크 박스를 사용해서 구현했는데, 체크 박스를 하나씩 셀에 그려 넣고, 셀과 일일이 연결하는 과정이 꽤나 번거로웠던 것으로 기억합니다. VBA를 사용하면 얼마나 간단하게 해결할 수 있는지 확인해 보세요.

Excel 매크로나 VBA를 잘 몰라도 상관없습니다. 아래에서 소개된 코드를 복/붙(복사/붙여넣기) 하세요. 진행되는 순서만 잘 이해하시면 됩니다. VBA를 좀 더 체계적으로 배우고 싶은 분들은 [VBA 입문 강의]를 보실 것을 추천합니다.

 


이 콘텐츠는 다음 동영상 강의와 보완 관계에 있습니다. 동영상을 먼저 보시면 이해하기 더욱 쉽습니다.


조건부 서식 지정

(1) 조건부 서식을 지정할 영역을 범위로 지정합니다. [홈] 탭 - [스타일] 그룹 - [조건부 서식] - [새 규칙]을 선택합니다.

(이미지: 아이엑셀러 닷컴)

(2) [새 서식 규칙] 대화상자에서 [수식을 사용하여 서식을 지정할 셀 결정]을 선택합니다. [규칙 설명 편집] 란에는 다음 수식을 작성합니다. '달성 여부'를 표시할 열은 고정(F열)되어 있지만 행은 바뀌어야 하기 때문에 혼합 주소 형태로 지정합니다.

=$F4=true

(3) [서식] 버튼을 누른 다음 배경색을 적당한 것으로 지정합니다.

(4) 서식 지정이 끝났으면 [확인] 버튼을 눌러서 조건부 서식 지정 작업을 마무리합니다.

VBA 코드 작성

(1) 엑셀 워크시트 상태에서 Alt + F11을 눌러 Visual Basic Editor를 표시합니다.

(2) [삽입] - [모듈] 메뉴를 선택하여 모듈을 하나 삽입하고 다음 코드를 작성합니다.

Sub insertCheckBox()
	''' 변수 선언
    Dim rCheck As Range
    Dim rX As Range
    Dim cb As CheckBox
    Dim shpX As Shape
    
    On Error Resume Next
    ''' InputBox를 사용하여 범위를 입력받음. Type을 8로 지정함에 유의
    Set rCheck = Application.InputBox( _
        "체크 박스를 삽입할 범위를 지정하세요", Type:=8)
    
    If rCheck Is Nothing Then
        MsgBox "범위가 선택되지 않았습니다."
        Exit Sub
    End If
    
    ''' 이미 만들어진 체크 박스가 있다면 모두 삭제
    For Each shpX In ActiveSheet.Shapes
        If shpX.FormControlType = xlCheckBox Then shpX.Delete
    Next

	''' 지정한 영역의 각 셀에 체크 박스 작성
    For Each rX In rCheck
    
    	''' 도형을 작성할 때에는 지정한 셀의 왼쪽/위/너비/높이 순으로 지정
        With rX
            Set cb = ActiveSheet.CheckBoxes.Add( _
            .Left + .Width / 3, .Top, _
            .Width, .Height)
        End With
        With cb
            .Caption = ""
            .LinkedCell = rX.Address
        End With
        rX.Font.Color = RGB(255, 255, 255)
    Next
End Sub

VBA 코드 실행하기

(1) 작성한 VBA 코드를 실행하는 방법에는 여러 가지가 있습니다만, 이번에는 단축키를 이용해 보도록 하죠. 워크시트로 가서 Alt + F8을 누릅니다.

(2) [매크로] 대화상자가 나타납니다. 실행할 매크로를 선택하고 [실행] 버튼을 누릅니다. 만약 여러 개의 엑셀 통합 문서가 열려 있고, 매크로가 많다면 [매크로 위치]를 [현재 통합 문서]로 지정하면 쉽게 선택할 수 있습니다.

(이미지: 아이엑셀러 닷컴)

(3) 체크박스를 삽입할 위치를 지정합니다. Ctrl 키를 이용하여 떨어져 있는 영역을 지정하는 것도 가능합니다.

(이미지: 아이엑셀러 닷컴)

(4) [확인]을 클릭하면 선택한 셀(영역)의 가운데에 체크박스가 한꺼번에 자동으로 삽입됩니다. 완료된 항목인 경우, 달성 여부(F열)에 있는 체크 박스에 체크 표시를 하면 지정한 서식이 나타나므로 달성 여부를 시각적으로 파악할 수 있으므로 편리합니다.

(이미지: 아이엑셀러 닷컴)

반응형