앞에서 ActiveX 컨트롤인 명령 단추와 콤보 상자에 대해 알아봤습니다. 이번에는 확인란에 대해서 알아보겠습니다. 확인란은 흔히 보시는 v체크와 같이 선택이 되면 관련된 내용만 화면에 나타나게 하는 기능입니다. 데이터가 많은 표에서 원하는 데이터를 찾을 때 유용하게 사용할 수 있는 컨트롤입니다.
VBA 개발 도구의 ActiveX 컨트롤을 사용하여 프로그래밍 하기 I
2. 확인란
엑셀 메뉴에서 개발 도구-컨트롤-삽입을 클릭하면 열리는 메뉴에서 ActiveX 컨트롤의 확인란을 클릭합니다. 엑셀 시트의 원하는 위치에 마우스 커서를 이동하고 클릭하여 드래그합니다. 원하는 크기로 드래그하였으면 마우스에서 손을 떼어 확인란 작성을 완료합니다.
만든 확인란이 선택된 상태에서 엑셀 메뉴의 개발 도구-컨트롤-속성을 클릭하여 속성 창을 엽니다. 속성 창에서 확인란에 표시되는 이름 등을 작성하시면 됩니다.
ActiveX 컨트롤 확인란에 대하여 예제를 통해서 자세히 알아보겠습니다.
[그림 1]과 같이 거래처 관리 시트가 있습니다. 표의 제목 '거래처 관리'를 셀 결합 없이 가운데에 위치하도록 하는 방법은 아래 링크의 이전 글을 확인하시기 바랍니다. 확인란을 거래유형으로 구별하여 관리할 수 있도록 작성하려고 합니다.
[그림 2]와 같이 확인란을 작성하였습니다. 작성할 때 하나의 확인란을 만든 후 Ctrl + Shift 키를 누른 상태에서 만든 확인란을 클릭하여 드래그하면 확인란이 추가로 생성됩니다.
테두리는 엑셀 메뉴에서 홈-글꼴에서 셀의 테두리와 셀 색상을 작성하였으며 만든 확인란을 테두리 안에 맞게 이동시켰습니다.
거래유형에 있는 확인란을 Ctrl 키를 누른 상태로 모두 선택합니다. 그리고, 엑셀 메뉴에서 그리기 도구-서식-정렬-맞춤을 클릭합니다. ([그림 3] 참조)
[그림 4]와 같은 맞춤 메뉴가 출력됩니다. 메뉴에서 아래쪽 맞춤을 클릭하여 만든 확인란을 정렬합니다.
이제 만든 확인란을 더블 클릭하여 VBA 코드를 아래와 같이 작성합니다.
Option Explicit
Dim 거래 As Range
Dim i As Integer
Private Sub CheckBox1_Click()
Set 거래 = Sheet1.Range("C4:C300")
If CheckBox1.Value = True Then
For i = 4 To 300
If Cells(i, 3) = "매입" Then
Cells(i, 3).Rows.Hidden = False
Else
Cells(i, 3).Rows.Hidden = True
End If
Next i
Else
Sheet1.Cells.Rows.Hidden = False
End If
End Sub
Private Sub CheckBox2_Click()
Set 거래 = Sheet1.Range("C4:C300")
If CheckBox2.Value = True Then
For i = 4 To 300
If Cells(i, 3) = "매출" Then
Cells(i, 3).Rows.Hidden = False
Else
Cells(i, 3).Rows.Hidden = True
End If
Next i
Else
Sheet1.Cells.Rows.Hidden = False
End If
End Sub
CheckBox1은 매입 확인란을 지칭하며 CheckBox2는 매출 확인란을 지칭합니다.
각 확인란을 더블 클릭하시면 Private Sub CheckBox1_Click()과 Private Sub CheckBox2_Click() Sub 프로시저가 자동으로 생성됩니다.
CheckBox1.Value = True : CheckBox1이 체크되어 있는지 확인하는 것으로 체크되어 있을 경우 True입니다.
그다음 For 문을 통해 1 ~ 300행의 3번째 열(C열)의 값이 매입인지 확인합니다.
값이 매입인 경우에는 해당하는 행을 표시하고, 매입이 아닌 경우는 해당하는 행을 숨기기 하였습니다.
Sheet1.Cells.Rows.Hidden = False : if문을 써서 확인란이 체크되어있지 않은 경우 모든 행의 숨기기를 해제하도록 하였습니다.
입력을 완료하셨으면 VBA를 실행시키시고 엑셀 시트에서 확인란을 클릭하시거나 해제하시면 처음에 원했던 대로 실행되는 것을 확인하실 수 있습니다.
'엑셀 > VBA' 카테고리의 다른 글
액셀 VBA에서 개체와 컬렉션에 대해 알아보기 (0) | 2021.09.18 |
---|---|
VBA 사용자 정의 폼과 컨트롤 도구로 엑셀 시트에 데이터 입력하기 (0) | 2021.09.02 |
VBA 개발 도구의 ActiveX 컨트롤을 사용하여 프로그래밍 하기 I (0) | 2021.08.25 |
VBA로 원하는 색상 사용하는 방법 알아보기 II (0) | 2021.08.20 |
VBA로 원하는 색상 사용하는 방법 알아보기 I (0) | 2021.08.20 |