Lost Information!

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

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

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

Lostinformation 2020. 10. 16. 19:52

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

지난 글에서는 

 

엑셀에서 쉽게 하는

지우기if 조건문

사용해서 데이터를 

지우는 방법에 대해 

알려드렸습니다.

 

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

기억이 나질 않으신다면

밑에 글을 참고해주세요.

red-s.tistory.com/2422

 

엑셀 VBA 기초 - 엑셀 실무에서 필요한 지우기방법 - 2편

모두가 칼퇴하는 그날까지~ 지난 글에서는 엑셀에서 쉽게 하는 지우기를 서식은 그대로 두고 내용만 지우는 방법, delete와 clear의 차이에 대해서 설명해드렸는데요. 만일 저번 내용을 모르시거�

red-s.tistory.com

이번 글은 엑셀 event에
대해서 알려드리도록 하겠습니다.

 

엑셀의 event?

아마 많은 분들이 알고 계시겠지만

처음 들어보시는 분들도 

계실 거라고 생각합니다.

 

이벤트랑 갑자기 짠하고 

우리가 서프라이즈 파티하듯이

엑셀에서는 파일을 열거나

닫을 때 또는 셀을 클릭하거나

셀의 내용이 바뀌었을 때 등

특정 상황에 따라 vba 코드가

실행되도록 설정할 수 있습니다.

 

그럼 엑셀을 실행하고 

언제나처럼 ALT + F11

눌러주세요

 

하지만 오늘은 삽입에 

모듈을 클릭하는 것이 아니라 

현재_통합_문서를 더블클릭해주세요.

 

그리고 위의 일반이라고 

적혀 있는 부분을 

Workbook으로 변경해주세요.

 

 

그다음 이렇게 

메시지 박스를 하나 추가하고

하고 싶은 말을 적은 다음

엑셀을 저장해주세요

 

매크로를 포함하는 

통합 문서로 저장하셔야 합니다.

 

그다음에 엑셀을 끄고 다시

더블클릭으로 실행해보세요.

 

그럼 이렇게 엑셀을 

시작하자마자 메시지 박스

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

 

그럼 이번에 창을 닫기 전에

다른 메시지를 뜨기 위해

한번 설정해 볼까요

 

이렇게 workbook 

옆에 open이라고 쓰여있는 항목을

BeforeClose라고 변경해주시고요.

 

 

이렇게 퇴근 전에 확인해야

하는 것들을 적을 수도 있겠죠

 

그리고 엑셀 창을 끄려고 하면

메시지 박스를

확인할 수 있습니다.

 

하지만 이렇게만 작성한다면

혹시나 저장 안 한 경우에

그냥 닫히게 돼서 아무 소용이

없는 메시지 박스가 되게 되는데요.

 

그래서 if문을 추가해주어야 합니다.

 

바로 이렇게 적어주시면 됩니다.

 

Private Sub Workbook_BeforeClose(Cancel As Boolean)

   If MsgBox("저장하고 닫는 거지? 퇴근하는 거야?", vbYesNo) = vbNo Then
        MsgBox "야근할 뻔했네 저장하자"
        Cancel = True
        
   End If
   
   
End Sub

 

설명하자면

 

퇴근한다는 말에 NO를 선택하면

"야근할 뻔했네 저장하자"

라는 말이 나오고 엑셀이 종료되지

않는 거죠.

 

한번 실행해볼까요?

 

종료하려고 하면 먼저

예 아니요를 물어보는

창이 먼저 뜨고 

만약 저장을 안 해서 

아니요를 누른다면

 

이렇게 한 번 더 저장하라는

말을 보여주면서 엑셀이

종료되지 않는 거죠.

 

정말 이렇게 꼭 잊으면 

안 되는 일들을 종료 전에

한번 상기시켜주면 

실수로 인해 무언가를 

놓쳐서 야근하실 일을

줄어들게 되실 거라고 생각합니다.

 

당연히 회사 업무 외에

집에 들어가기 전에 사가야 할

물건을 적어놔도 되고요.

 

약속을 미리 적어두셔도 되겠죠.

 

언제나 칼퇴하셨으면 좋겠고

 

여기까지 궁금하신 점은 

댓글에 남겨주세요.

 

그리고 공감구독도 

부탁드리겠습니다~

Comments