어제 오늘 내일

[Excel] 엑셀 체크박스 자동으로 셀 연결하기 본문

Tools/Excel

[Excel] 엑셀 체크박스 자동으로 셀 연결하기

hi.anna 2016. 10. 9. 07:01



지난 번 포스팅에서 엑셀에 체크박스를 삽입하고,

선택된 체크박스의 합계를 구하는 내용을 설명했었다.

[Tools/Excel] - [Excel] 엑셀 체크박스 삽입 및 합계 구하기(1)

[Tools/Excel] - [Excel] 엑셀 체크박스 삽입 및 합계 구하기(2)


그 과정 중 체크박스가 선택되었는지 여부를 보여주는 '셀 연결'을 

하나하나 일일히 수동으로 해야하는 어려움이 있었다.

(엑셀 자체에서 일괄 또는 자동으로 체크박스와 셀 연결을 할 수 있는 방법은 없는 것 같다.

적어도..현재까지, 내가 알고 있는 한에서는)

이번 글에서는 그 수고로움을 덜어줄 수 있는 방법을 소개하려고 한다.



엑셀 체크박스 자동으로 셀 연결하기



엑셀의 체크박스 셀 연결을 일괄 또는 자동으로 처리하기 위해서는 매크로를 사용해야 한다.



1. 아래와 같이 체크박스 목록을 생성한다.

(체크박스 생성은 지난번 포스팅 참조)

단, 체크박스를 생성할 때 체크박스의 상단 경계선이 B열의 첫번째 예시처럼 해당 셀을 벗어나지 않도록 주의하여 생성해야 한다.

D열은 상단 왼쪽 모서리가 1행을 침범하였다.

F열은 상단 왼쪽 모서리가 E열을 침범하였다.

D열이나 F열과 같이 체크박스가 위치할 경우, 

매크로는 D열 체크박스의 위치를 D1셀로 인지하고

F열 체크박스의 위치를 E2셀로 인지할 것이다.



2. [보기 - 매크로 - 매크로 보기] 메뉴를 선택한다.



3. 매크로 이름을 입력하고, 만들기 버튼을 클릭한다.

나는 '체크박스자동셀연결'이라고 만들었는데, 

매크로 이름에는 공백만 들어가지 않는다면, 다른 이름으로 해도 상관 없다.



4. 매크로를 입력하는, 아래와 같은 창이 나오면 아래 매크로를 복사하여 붙여넣는다.


Sub 체크박스자동셀연결()

Dim chkbox As CheckBox

Dim right As Long

right = 1 '체크박스에서 오른쪽으로 1칸


For Each chkbox In ActiveSheet.CheckBoxes

   With chkbox

      .LinkedCell = _

         .TopLeftCell.Offset(0, right).Address

   End With

Next chkbox


End Sub


위 매크로는 현재 활성화되어 있는 워크시트의 모든 체크박스를 검사하여

모든 체크박스의 오른쪽 열에 셀 연결을 해준다.


"Sub 체크박스자동셀연결()"

매크로 이름을 달리한 경우, 붉은색 이탤릭체로 적힌 '체크박스자동셀연결'을 매크로 이름으로 변경해 준다.


"right = 1 '체크박스에서 오른쪽으로 1칸"

붉은 색 1은 체크박스가 삽입 된 열에서 오른쪽으로 1칸 떨어진 열에 자동으로 셀 연결을 하겠다는 의미이다.

그러므로, 체크박스 바로 옆이 아닌 다른 열에 셀 연결을 할 경우 이 숫자를 수정해 준다.



5. 다시 [보기 - 매크로 - 매크로 보기] 메뉴로 이동하여, 생성한 매크로를 선택한 후, 실행버튼을 클릭한다.



6. 매크로가 실행 되면, 아래와 같이 

워크시트의 모든 체크박스와 해당 체크박스의 바로 오른쪽 셀이 자동으로 연결 된다.



체크박스가 많을 경우

위와 같이 매크로를 활용하면, 작업량을 줄일 수 있다.



반응형
Comments