메뉴

CloseWB

Function

파일 저장 여부를 확인한 뒤 통합문서를 강제 종료하거나 취소하는 VBA 사용자 지정 함수입니다.

CloseWB 코드 미리보기
구문 = CloseWB ( [SaveChanges], [DisplayAlert] )
인수구분 형식 설명
SaveChanges 선택 Boolean
True 일 경우 통합문서를 저장한 뒤 파일을 강제 종료합니다. 기본값은 True 입니다.
False 일 경우 파일의 변경사항을 저장하지 않고 강제 종료합니다.
DisplayAlert 선택 Boolean
기본값은 False 이며, 파일 저장 여부를 확인하는 안내창을 띄우지 않고 SaveChanges 값에 따라 파일을 강제 종료합니다.
True 일 경우 SaveChanges 값은 무시되고, 사용자가 안내창에서 선택한 저장 여부에 따라 파일이 강제 종료됩니다.

마스터 코드

복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요
Module1 · CloseWB
Public blnClose As Boolean
Function CloseWB(Optional SaveChanges As Boolean = True, Optional DisplayAlert As Boolean = False) As Boolean
Dim WB As Workbook
Dim i As Long
Dim vbYN As VbMsgBoxResult
Application.DisplayAlerts = False
Logout
If blnClose = False Then
If DisplayAlert = True Then
vbYN = MsgBox("'" & ThisWorkbook.Name & "' 의 변경내용을 저장하시겠습니까?", vbYesNoCancel)
If vbYN = vbNo Then SaveChanges = False: blnClose = True
If vbYN = vbYes Then SaveChanges = True: blnClose = True
If vbYN = vbCancel Then blnClose = False: GoTo Finally
End If
For Each WB In Application.Workbooks
If WB.Name <> "PERSONAL.XLSB" Then i = i + 1
Next
If i = 1 Then
If SaveChanges = True Then
ThisWorkbook.Save
Application.EnableEvents = False
Application.Quit
Else
ThisWorkbook.Saved = True
Application.EnableEvents = False
Application.Quit
End If
Else
If SaveChanges = True Then
ThisWorkbook.Save
ThisWorkbook.Close
Else
ThisWorkbook.Saved = True
ThisWorkbook.Close
End If
End If
End If
CloseWB = False
Application.DisplayAlerts = True
Exit Function
Finally:
Application.DisplayAlerts = True
CloseWB = True
End Function
Sub Logout()
'파일 종료 전 실행 할 특정 로그아웃 동작을 작성합니다
End Sub

활용 예제

현재_통합_문서 모듈에서 종료 전 저장 여부 묻기
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' 통합문서가 종료되기 전, CloseWB 함수를 실행한 뒤 사용자가 '취소' 버튼을 클릭할 경우 파일 강제종료를 취소합니다.
' 사용자가 예 / 아니오를 클릭할 경우 파일을 결과값에 따라 파일이 강제 종료 됩니다.
Cancel = CloseWB(, True)
End Sub

안내사항

사용자 지정 함수이므로 시트 함수 목록에는 표시되지만 시트에서는 사용할 수 없으며, 목록에서 숨기려면 Private Function 으로 변경합니다.
파일을 종료하기 전 특정 동작이 필요하면 함께 제공되는 Logout 보조 명령문에 작성합니다.
댓글 2
5 (2개 평가)
행복사랑
행복사랑 2023.06.26 11:43
위 자료에 대한 동영상강의는 없나요. 유튜브(초보)
강민준🤗
강민준🤗 2024.08.11 12:04
좋은 자료 감사합니다.🙇‍♂️
스크랩 완료