Excel & IT Info

아이엑셀러 닷컴, 엑셀러TV

VBA

Excel 종료 시 실행되게 하는 VBA 코드 5가지

권현욱(엑셀러) 2023. 10. 21. 12:00
반응형

얼마 전에 Excel 파일이 열릴 때 도움이 될 만한 VBA 코드를 소개한 적이 있었습니다. 이번에는 Excel 파일을 닫을 때 자동으로 실행되는 몇 가지 VBA 코드에 대해 알아봅니다.

Excel 매크로나 VBA를 잘 몰라도 상관없습니다. 아래에서 소개된 코드를 복사/붙여넣기(복/붙) 하세요. 여러분들은 진행되는 순서만 잘 이해하시면 되며, [VBA 입문 강의]를 보실 것을 추천합니다. 특히 16강 '이벤트와 이벤트 프로시저'를 잽싸게 보고 오세요. 보는 데 5분도 안 걸립니다.

 

※ 이 글은 아래 기사 내용을 토대로 작성되었습니다만, 제 개인 의견이나 추가 자료들이 다수 포함되어 있습니다. 원문 내용이 궁금하신 분은 URL을 살펴보세요.


  • 원문: Excel VBA Code That Make Sense to Run at Shut Down
  • URL: https://turbofuture.com/computers/excel-vba-code-that-make-sense-to-run-at-shut-down

1. 필수 항목 확인하기

Excel 파일을 닫기 전에 필수 사항을 확인하는 것은 좋은 방법입니다. 이 코드를 실행하려는 이유는 다양합니다 (예. 필수 데이터 입력 확인, 작업 흐름 제어, 요구사항 준수 등).

다음 단계를 통해 이 코드를 사용해 보세요.  

  1. Alt + F11을 눌러서 Visual Basic Editor를 엽니다.
  2. 왼쪽 창에서 ThisWorkbook(현재 통합 문서)을 선택합니다(더블 클릭).
  3. 오른쪽 창이 나타나면 다음 VBA 코드를 입력합니다(이벤트 프로시저).
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If IsEmpty(Worksheets("Sheet1").Range("A1").Value) Then
        MsgBox "Please fill in required field A1 before closing."
        Cancel = True
    End If
End Sub

통합 문서를 닫으려고 하면 아래와 같은 메시지 상자가 나타납니다. 시트 이름(Sheet1)과 셀 주소(A1), 메시지 상자에 표시할 내용을 변경해서 사용하세요.

(이미지: 아이엑셀러 닷컴)

2. 특정 범위 지우기

문서를 닫을 때 원래 상태로 되돌려 두면 다음에 문서를 열 때 새로 시작할 때 바로 시작할 수 있습니다. 이것 말고도 다양한 용도로 사용할 수 있습니다.(예. 데이터 개인정보 보호 및 보안, 데이터 유출 방지, 다음 사용을 위한 데이터 정리, 통합 문서 사용의 일관성 유지, 프로세스 표준화, 향상된 사용자 경험, 오류 예방 등).

다음 단계를 통해 이 코드를 사용해 보세요.  

  1. Alt + F11을 눌러서 Visual Basic Editor를 엽니다.
  2. 왼쪽 창에서 ThisWorkbook(현재 통합 문서)을 선택합니다(더블 클릭).
  3. 오른쪽 창이 나타나면 다음 VBA 코드를 입력합니다(이벤트 프로시저).
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Worksheets("Sheet1").Range("A1:B10").ClearContents
    Worksheets("Sheet2").Range("C1:D10").ClearContents
End Sub

시트 이름과 범위를 업무에 맞게 변경합니다. 범위 중 하나를 제거하거나 필요한 만큼 추가할 수도 있습니다.

3. 알림 메시지 만들기

때로는 파일을 닫기 전에 스스로 생각해 볼 수 있는 메시지나 알림이 필요할 때가 있습니다. 통합 문서를 닫기 전에 정기적으로 메시지 팝업이 표시되면 꽤 짜증 날 수 있지만 이 코드에 특별한 메시지를 넣어 중요한 작업을 완료하라는 알림 역할을 할 수 있습니다(예. 사용자에게 상기시키기, 의사소통 촉진, 작업 완료 보강, 협업 강화, 고객 서비스 등).

다음 단계를 통해 이 코드를 사용해 보세요.  

  1. Alt + F11을 눌러서 Visual Basic Editor를 엽니다.
  2. 왼쪽 창에서 ThisWorkbook(현재 통합 문서)을 선택합니다(더블 클릭).
  3. 오른쪽 창이 나타나면 다음 VBA 코드를 입력합니다(이벤트 프로시저).
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim emailMsg As String
    emailMsg = "Plaese send the file to: example@example.com"
    MsgBox emailMsg, vbInformation, "File Submission Reminder"
End Sub

파일을 닫으려고 하면 다음과 같은 메시지 상자가 나타납니다. 파일을 닫고 나서 혹은 닫은 다음 어떤 작업을 해야 하는지 알 수 있습니다.

(이미지: 아이엑셀러 닷컴)

4. 닫기 전에 통합 문서 저장하기

저장을 하지 않고 Excel 통합 문서를 닫는 경우가 있습니다. 자주 발생하는 일은 아니지만 분명 발생합니다. 저장에 동의하는지 여부에 관계없이 Excel 통합 문서에 코드를 추가하여 파일을 저장할 수 있습니다(예. 데이터 손실 방지, 사용자 편의성, 협업 지원, 백업 프로세스 자동화 등).

다음 단계를 통해 이 코드를 사용해 보세요.  

  1. Alt + F11을 눌러서 Visual Basic Editor를 엽니다.
  2. 왼쪽 창에서 ThisWorkbook(현재 통합 문서)을 선택합니다(더블 클릭).
  3. 오른쪽 창이 나타나면 다음 VBA 코드를 입력합니다(이벤트 프로시저).
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Save
End Sub

[주의] 이 코드는 변경 사항이 있든 없든 통합 문서를 강제로 저장합니다. 문서를 강제로 저장하면 원하지 않는 변경 사항이 저장될 수 있으므로 주의해서 사용하시기 바랍니다.

5. 백업 복사본 만들기

Excel 통합 문서의 백업 복사본을 만드는 것은 마음의 평화를 위한 훌륭한 방법입니다. 문서가 닫히기 전에 미리 정의된 파일 이름으로 백업 복사본을 생성하고 특정 위치에 저장하도록 설정할 수 있습니다(예. 데이터 보호, 재해 복구, 버전 관리, 보관 및 감사, 악의적인 행위로부터 보호, 협업 촉진 등).

다음 단계를 통해 이 코드를 사용해 보세요.  

  1. Alt + F11을 눌러서 Visual Basic Editor를 엽니다.
  2. 왼쪽 창에서 ThisWorkbook(현재 통합 문서)을 선택합니다(더블 클릭).
  3. 오른쪽 창이 나타나면 다음 VBA 코드를 입력합니다(이벤트 프로시저).
''' 경로와 사용자 이름을 적용할 때 오류가 생길 소지가 있어서 원래 코드 내용을 수정했습니다.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\Backup.xlsx"
End Sub

백업 파일은 현재 통합 문서와 같은 경로로 지정했습니다. 백업 파일이 저장될 경로나 백업 파일 이름은 본인 업무에 맞게 지정하시면 되겠습니다.

 

반응형