본문 바로가기

엑셀/VBA

VBA 개발도구의 ActiveX 컨트롤을 사용하여 프로그래밍 하기 II

반응형

앞에서 ActiveX 컨트롤인 명령 단추콤보 상자에 대해 알아봤습니다. 이번에는 확인란에 대해서 알아보겠습니다. 확인란은 흔히 보시는 v체크와 같이 선택이 되면 관련된 내용만 화면에 나타나게 하는 기능입니다. 데이터가 많은 표에서 원하는 데이터를 찾을 때 유용하게 사용할 수 있는 컨트롤입니다.

 

VBA 개발 도구의 ActiveX 컨트롤을 사용하여 프로그래밍 하기 I

 

VBA 개발 도구의 ActiveX 컨트롤을 사용하여 프로그래밍 하기 I

엑셀 메뉴에서 개발도구-컨트롤-삽입을 클릭하면 양식 컨트롤과 ActiveX 컨트롤 두 가지의 메뉴를 보실 수 있습니다. 양식 컨트롤의 경우는 VBA 프로그래밍 없이 사용할 수 있는 컨트롤이지만 Active

mr-johndoe.tistory.com

 

 

 

2. 확인란

 엑셀 메뉴에서 개발 도구-컨트롤-삽입을 클릭하면 열리는 메뉴에서 ActiveX 컨트롤확인란을 클릭합니다. 엑셀 시트의 원하는 위치에 마우스 커서를 이동하고 클릭하여 드래그합니다. 원하는 크기로 드래그하였으면 마우스에서 손을 떼어 확인란 작성을 완료합니다.

만든 확인란이 선택된 상태에서 엑셀 메뉴의 개발 도구-컨트롤-속성을 클릭하여 속성 창을 엽니다. 속성 창에서 확인란에 표시되는 이름 등을 작성하시면 됩니다.

 

ActiveX 컨트롤 확인란에 대하여 예제를 통해서 자세히 알아보겠습니다.

 

거래처_관리
[그림 1] 거래처 관리

[그림 1]과 같이 거래처 관리 시트가 있습니다.  표의 제목 '거래처 관리'를 셀 결합 없이 가운데에 위치하도록 하는 방법은 아래 링크의 이전 글을 확인하시기 바랍니다. 확인란을 거래유형으로 구별하여 관리할 수 있도록 작성하려고 합니다. 

 

셀 병합 없이 입력한 데이터를 가운데 배치하기

 

셀 병합없이 입력한 데이터를 가운데 배치하기

 엑셀 작업을 하시다 보면 표 제목이나 보고서 제목 등을 입력할 때 셀을 병합하여 제목을 입력하고 셀 가운데 맞춤으로 셀 중앙에 표시하는 경우가 많습니다. 또한 표의 제목란에서 셀 병합을

mr-johndoe.tistory.com

 

확인란_작성
[그림 2] 확인란 작성

[그림 2]와 같이 확인란을 작성하였습니다. 작성할 때 하나의 확인란을 만든 후 Ctrl + Shift 키를 누른 상태에서 만든 확인란을 클릭하여 드래그하면 확인란이 추가로 생성됩니다.

테두리는 엑셀 메뉴에서 홈-글꼴에서 셀의 테두리와 셀 색상을 작성하였으며 만든 확인란을 테두리 안에 맞게 이동시켰습니다.

 

 

 

거래유형에 있는 확인란을 Ctrl 키를 누른 상태로 모두 선택합니다. 그리고, 엑셀 메뉴에서 그리기 도구-서식-정렬-맞춤을 클릭합니다. ([그림 3] 참조)

 

서식_메뉴
[그림 3] 서식 메뉴-맞춤

 

서식_맞춤_메뉴
[그림 4] 서식-맞춤 메뉴

[그림 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를 실행시키시고 엑셀 시트에서 확인란을 클릭하시거나 해제하시면 처음에 원했던 대로 실행되는 것을 확인하실 수 있습니다. 

 

반응형