엑셀화일을 지정 컴퓨터에서만 열 수 있게 하는 법

 

회사에서 Excel의 암호 잠금 기능을 사용 단가, 비자금? 등의 비밀 문서를
관리하시는 분이 계실 듯합니다. 그런데 요새는 엑셀 암호를 깨는 툴들이
많아 엑셀 파일이 유출되면 암호 잠금도 소용없는 시절입니다.

보통 Excel의 비밀번호를 입력하여 사용자가 관리하는데 너무 열심이고 똑똑한 분이
가끔 암호를 자주 바꾸어 암호를 헷갈려 난감한 경우를 맞이하는 경우를 종종 봅니다.
아무도 모르는 것으로 어렵게 한다고 자기도 모르는 것으로 바꾸고 까먹지요?^^;;

저는 iExceller(http://www.iexceller.com/) 의 팁을 이용, 비밀 문서를 열어볼 수 있는
PC의 HD ID를 체크하여 지정되지 않은 PC에서는 열리지도 않도록 해서 사용합니다.
iExceller님의 팀은 매크로를 보안때문에 실행하지 않으면 다른 Sheet들을 마음대로
볼 수 있기 때문에 사실상 효력이 반감되지만 제 방법은 Welcome 시트 밖에 볼 수
없기 때문에 어떤 다른 Sheet를 볼 수 없습니다.

더 보안을 강화?할려면 기존의 암호 방식을 채택하면 이중 암호의 효과가 있겠지요.
보안이 필요한 엑셀화일을 이런 식으로 만들어서 배포하면 나중에 퇴사한 후에도
사용을 할 수가 없습니다. 배포하기 전에 사용할 사람들의 ID를 전부 넣어 두면
사용하는 사람들은 항상 정상적으로 실행되기 때문에 매크로가 있는지도 몰라요.

원리는 간단합니다. 사용자 PC의 하드 디스크의 시리얼을 체크하여 체크 모듈에
넣어두고 문서를 읽을 때 체크하여 지정 PC가 아니면 퇴출시켜? 버리는 것입니다.
하드 디스크는 포멧을 하거나 새로 변경되면 ID가 바뀌기 때문에 매크로를 사용
언제든지 추가 삭제 할 수 있도록 했습니다.

우선 사용자의 HD ID 체크입니다. 이 첨부된 화일을 실행시키면 HD ID를 보여주고
ID를 클립보드로 복사시켜 줍니다. 이 ID를 첨부된 workbook_open 함수의 case 문에
“xxxxxxxxxxxx”로 되어 있는 부분에 대치하여 검사를 진행시킵니다. 물론 배열이나
기타 등등의 체크 방법이 많이 있겠지만 기밀문서를 여러 사람이 볼 리도 없고?해서
CASE문으로 몇 몇 사람만 등록될 수 있도록 간단히 처리했습니다.

매크로 보안 관련 메시지가 나오는데 매크로 열기를 확인하시면 되고 혹시나 바이러스를
의심하시면 첨부된 코드로 진행하시면 됩니다. ID Check 프로그램도 의심 되시면? ㅋㅋ
아래 매크로를 실행시키면 Welcome Sheet의 A1 셀에 시리얼이 보이도록 해 놓았습니다.

방법은 엑셀의 개발도구 탭의 Visual Basic을 선택하셔서 ThisWorkbook을 더블 클릭하시고
아래의 코드를 복사해 넣으시고 CASE문의 ‘xxxxxxxxxxxx’ 부분을 클립보드에 복사해 놓은
ID를 대치하면 됩니다. 아참! 도구메뉴의 참조에서 Microsoft Scripting Runtime 체크!

비번은 ‘temppwd’입니다. 처음 실행시에 물어 보면 입력하시고 비번 수정 후 다른 이름 저장!
(If password “temppwd” Then 이 부분의 temppwd를 자신의 비번으로 바꾸면 됩니다.)
Visual Basic 도구 메뉴에서 VBA Project 속성에서 보호 탭을 누르시고 “읽기 전용으로 …”를
체크 하시고 암호를 입력하면 이 매크로 자체를 볼 수도 없고 엑셀 시트도 볼 수 없게 되어
누구도 지정되지 않은 PC와 암호를 모르는 사람은 접근 할 수가 없습니다.

순서

1. 첨부된 IDCheck 프로그램 실행하면 아래 화면과 ID를 클립보드로 복사해 줍니다.

20150327143658

2. 첨부 화일을 이용하시면 좋으나 신규로 만든다고 가정하고 설명하겠습니다. (EXCEL 2007 기준)

우선 엑셀 화일을 여시고 개발도구 탭을 선택하고 리본 메뉴 제일 왼쪽의 Visual Basic 를 클릭합니다.

그러면 Visual Basic Editor가 보이고 왼쪽 상단에 Sheet1, Sheet2, Sheet2… 와 ThisWorkbook이 보입니다.

ThisWorkbook을 더블 클릭하시고 첨부된 txt화일의 내용을 복사해서 오른쪽 Edit에 붙여 넣기를 합니다.

IDINPUT

3. 도구 > 참조 > 아래로 한참을 스크롤해서 Microsoft Scripting Runtime을 체크해서 추가해 줍니다.

reference
20150327144659
아참! 그리고 Sheet1의 이름을 Welcome으로 바꾸어 줍니다.

4.  그리고 저장할 때 반!드!시!(Excel 2007기준) 매크로 통합 문서로 저장합니다.

macro-in

5. 저장 후 다시 열기를 하면 아래의 화면이 보이고 보안 경고가 뜨는 데 옵션을 클릭하여 사용으로 확인!

security-on

6. 아래의 화면이 보이고 예를 선택합니다. 물론 아니오를 선택하면 엑셀을 종료해 버립니다.

regist

7. 임시 암호를 입력합니다.

temppwd

8. ID가 A1 셀에 보입니다. 열 넓이를 늘여서 ID를 확인합니다.

idview

8.  확인 된 ID를 Visual Basic Editor를 열어서 ‘xxxxxxxxxxxx’ 복사해 주고 비밀 번호도 변경해 줍니다.

If password <> “temppwd” Then 혹시나 다른 컴에서 실행시 암호를 지정하면 실행 가능함.

이 부분의 temppwd를 변경하면 됩니다.

9.  도구에서 VBA Project 속성을 선택해 줍니다. 그리고 보안 탭을 선택하여 아래와 같이 선택하고 암호 추가

이렇게 하면 매크로를 수정할려면 암호가 필요하기 때문에 1차 암호를 깨고 들어온 사용자도 열람 불가

vbp

protect

10. 인증 되었다는 메시지가 귀찮으면 Editor에서 msgbox앞에 ‘ 를 입력하면  주석 처리되어 다음부터는

나타나지 않습니다. 저장을 하고 엑셀을 재실행하면 보안경고가 뜨는데 이제 옵션에서 사용함으로

선택해서 일반적으로 사용하듯이 사용하면 됩니다.

 

ps > Welcome Sheet는 그냥 빈 상태로 두시고 다른 시트에서 작업하시기 바랍니다!

추가 > 검토 탭에서 통합문서 공유와 보호에서 암호를 걸어야 시트 숨기기 취소 메뉴가 비활성화 됩니다.

20150328121526

(첨부 화일) IDchek