событие Workbook_Deactivate срабатывает после закрытия диалогового окна сохранения.
Вам нужно будет показать модальный MsgBox и обработать ответ, выпустить Thisworkbook.Save, если требуется
Private Sub Workbook_Deactivate()
Dim res As VbMsgBoxResult
If Not ThisWorkbook.Saved Then
res = MsgBox("Save Now?", vbYesNo, "Book Not Saved")
If res = vbYes Then
ThisWorkbook.Save
End If
End If
End Sub
Имеетпобочный эффект, что если открыто более одной книги, переключение между ними также может привести к пожару