Lost Information!

엑셀 VBA 기초 - 엑셀 event? 만들어보자 -3편 본문

개인브랜드블로그를 만들어 보자/엑셀VBA

엑셀 VBA 기초 - 엑셀 event? 만들어보자 -3편

Lostinformation 2020. 10. 21. 16:27

모두가 칼퇴하는 그날까지~

 

지난 글에서는 

엑셀 오픈 시 비밀번호

설정하는 법에 대해 

조금은 알려드렸는데요

이번 글에서 이어서 

알려드리도록 하겠습니다.

 

만일 저번 내용을 모르시거나

기억이 나질 않으신다면

밑에 글을 참고해주세요.

red-s.tistory.com/2425

 

엑셀 VBA 기초 - 엑셀 event? 만들어보자 -2편

모두가 칼퇴하는 그날까지~ 지난 글에서는 엑셀의 이벤트를 활용해 엑셀을 킬 때 그리고 종료할 때 메시지 박스가 나오는 매크로에 대해 알려드렸습니다. 만일 저번 내용을 모르시거나 기억이

red-s.tistory.com

 

바로 이어가겠습니다.

 

UserForm창에 들어가 주시고요.

 

 

이렇게 작성해주세요.

 

바로 설명 들어가면

 

Private Sub CommandButton1_Click()

버튼을 클릭하면

 

Sheet1.Range("d2") = Me.TextBox1.Value

시트 1에 d2셀에 유저 폼에

입력된 패스워드를 넣어라

 

IF Sheet1.Range("d3") = 1 then

만약에 d3셀의 값이 1과 같다면

 

msgbox "안녕하세요. 업무 시작해요"

안녕하세요 업무 시작해요 라는

메시지 박스를 띄우고

 

else

아니라면

 

msgbox"패스워드를 확인하세요"

패스워드를 확인하세요라는

메시지 박스를 띄워

 

end if

 

end sub

 

여기까지 적어보고 실행한다면

 

이렇게 정해놓은 패스워드를

입력하면 정상적인 메시지 박스가

뜨는 걸 확인할 수 있습니다.

 

그럼 정상적으로 업무를 

시작하기 위해 유저 폼 창이 

닫혀야겠죠?

 

또 잘못된 패스워드를 

입력했을 때는 엑셀 창이

닫히도록 설정하겠습니다.

 

이렇게 적어서요.

 

추가된 부분만 설명 들어가면

 

Unload UserForm1

유저 폼을 닫아주세요

 

ActiveWorkbook.Close False

활성화된 작업창을 닫아주세요

단 저장하지 않고

 

이제 실행 본다면

 

 

패스워드를 잘못 입력했을 때

이렇게 창이 닫히는걸 

확인할 수 있습니다.

 

하지만 이렇게 닫힌 엑셀을

다시 열었을 때 시작하자마자

패스워드를 입력하라는

유저폼이 뜨지는 않는데요.

 

저저번 글에서 알려드린

오픈 이벤트로 설정만 한다면

바로 끝입니다.

 

현재 통합 문서에 

일반에서 workbook으로

설정 변경해주시고

 

sheet1.Range("d2"). clearContents

d2에 남아있는 패스워드를 지워

 

UserForm1.show

오픈하면 유저 폼 1을 보여줘

 

이렇게 작성 후 저장해 주시면 되고요.

 

정확히는 시트 1이 아닌 시트 2나

시트 3에 작성 후에 해당 시트를

마우스 오른쪽 버튼 누르고 

숨겨주시면 아무나 볼 수 없는

나만의 엑셀이 완성됩니다.

 

아무에게도 보여주고 싶지 않은

파일이나 중요한 데이터들은

이렇게 보관하시면 보안 하나는

확실하다고 생각합니다.

 

여기까지 궁금하신 점은 

댓글로 남겨주시고요.

 

공감구독도 부탁드립니다.

 

Comments