본문으로 바로가기

[Excel Tip-11] 시트 보호와 해제

category MS Office/Excel 2019. 3. 31. 20:12
반응형
엑셀로 파일을 만들어서 배포하는 일은 실무를 하다보면 자주 경험하게 된다.
데이터를 취합할 때도 엑셀로 만든 문서를 전달한 다음 피드백을 받기도 하는데,
내가 만든 포맷에서 데이터를 입력 받을 셀들과 수정되면 안되는 셀들이 구분되었으면 하는데...


시트 보호 & 해제

다음의 엑셀 문서를 보자.


품목별 단가와 수량, 그리고 할인율이 적용되어 합계를 구해주는...
그런 아주아주 단순한 엑셀 문서이지만, 약간의 상상을 더해서 상황을 한번 만들어보자. 
품목별 단가와 할인율 매출과 관련된 아주 중요한 부분이니,
관리자인 나 말고는 아무도 건드리지 않았으면 좋겠지만,
수량의 경우에는 데이터를 취합하는 작업자가 수정이 가능해야 할 것이다.
(아!! 합계 부분도 손대지 못하게... ㅎㅎ)

이런 경우에 활용할 수 있는 것이 바로 '시트 보호'이다.

시트 보호를 하기 전에 먼저 확인해야할 부분이 있는데,
'수량'을 의미하는 D열의 아무 곳에나 가서 셀 서식을 한번 실행해보자.
마우스 오른쪽 버튼 클릭한 다음 '셀 서식'을 선택해도 되고,
단축키 Ctrl + 1을 선택해도 된다.


셀 서식 팝업 창에서 '보호' 탭으로 이동하면 '잠금' 항목에 체크가 되어 있다.

엑셀에서는 기본적으로 모든 셀에 '잠금'이 체크되어 있는데,
이 상태에서 시트 보호를 하면 모든 셀이 수정 불가능 상태가 된다.
따라서, 수정이 가능한 영역은 먼저 셀 잠금을 모두 해제해주어야 한다.

제일 아래 줄인 합계 부분을 제외한 나머지 수량 항목들은 수정이 가능해야 하므로,
Shift키를 이용한 다중 선택을 한 다음 다시 한번 셀 서식 창을 열고
셀 잠금을 해제하자.


잠금할 셀과 해제할 셀을 모두 설정하고 나서,
검토 메뉴 내부의 '시트 보호'를 실행시키자. (단축키: Alt + R, Z, H, P, S)


시트 보호 창에서 제일 위에는 시트 보호를 해제할 암호 설정 칸이다.
여기에, 적당한 암호를 입력해서 확인을 클릭하면 시트 보호가 이루어진다.

엑셀 문서를 배포할 때 수정이 가능한 곳과 불가능한 곳을 구분짓는 작업은
지금까지의 내용으로도 충분하지만, 여기서 한가지 더!!
암호를 입력하는 칸 아래쪽에 '워크시트에서 허용할 내용'을 선택하는 부분이 있다.
여기서, 기본적으로 체크되어 있는 '잠긴 셀 선택'의 체크를 해제할 경우
시트가 보호된 상태에서는 셀 잠금을 해제한 셀들만 선택이 가능해진다. ㅎㅎ

만약, 단가나 할인율의 변경이 필요하거나 품목이 추가되어야 하는 등의
엑셀 문서 자체를 수정해야하는 일이 발생할 때는 시트 보호 해제를 해주면 수정이 가능하다.
(물론, 비밀번호는 잊지 말아야겠지?? ㅎㅎ)



여러 시트의 일괄 보호 및 해제

지금까지 다룬 내용은 시트 보호 및 해제이다.
다시 말해, 지금의 시트 보호는 해당 시트만 암호로 보호한다는 의미이고,
이렇게 시트 보호가 필요한 시트가 한 엑셀 문서 안에 여러개 있을 때는
당연히 시트마다 시트 보호를 해주어야 한다.

약간의 상상력을 더 발휘하여, 좀 더 극단적인 상황을 한번 만들어보자.
한 엑셀 문서 안에 보호되어야 할 시트가 100개가 있다면??
모든 시트마다 하나하나 시트 보호를 해줄 것인가?
만약 한참 시트 보호를 해주던 중, 수정이 필요한 상황...
(그러니까, 상급자로부터 시트 수정을 요청 받는 경우??)
이 발생한다면, 다시 시트 보호를 하나하나 해제하면서 작업할 것인가??

생각만해도 끔찍하다. ㅎㅎ
이럴 때, VBA를 이용하면 아주 쉽게 시트를 일괄 보호 및 해제할 수 있다.
먼저, Alt + F11을 눌러 VBA 창을 열자.


VBA 창에서 Ctrl + G를 누르면 '직접 실행'창이 열린다.


직접 실행 창에서....
1. 시트마다 다른 비밀번호로 시트 보호를 할 때...
For Each Worksheet In Worksheets: Worksheet.Protect: Next Worksheet

2. 모든 시트에 같은 비밀번호를  시트 보호를 할 때...
for each worksheet in worksheets:worksheet.protect "비밀번호":next worksheet
(위의 코드에서 비밀번호 부분에 본인이 원하는 비밀번호 입력할 것!!)

3. 시트마다 다른 비밀번호로 보호된 시트를 해제할 때...
For Each Worksheet In Worksheets: Worksheet.Unprotect: Next Worksheet

4. 같은 비밀번호로 보호된 시트를 일괄 해제할 때...
for each worksheet in worksheets:worksheet.unprotect "비밀번호":next worksheet

라고 입력하고 엔터키를 누르면 일괄 작업이 이루어진다. ㅎㅎ


반응형

'MS Office > Excel' 카테고리의 다른 글

[Excel Tip-10] 한영 자동 전환  (0) 2019.03.12
[Excel Tip-09] 표 만들기  (0) 2019.03.11
[Excel Tip-08] 틀 고정과 나누기  (0) 2019.03.10
[Excel Tip-07] VBA  (0) 2019.03.05
[Excel Tip-06] 조건부 서식을 활용하자!  (0) 2019.02.18