В качестве предположения : можно использовать события рабочей книги и отлавливать
все попытки сохранения и закрытия рабочей книги.
Код:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "Предпринята попытка сохранить рабочую книгу", , ""
Cancel = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Me.Saved = False Then
Select Case MsgBox("Сохранить изменения в файле '" & Me.Name & "'?", vbYesNoCancel + vbQuestion)
Case vbYes: MsgBox "Нажали кнопку Да", , ""
Case vbNo: MsgBox "Нажали кнопку Нет", , ""
Case vbCancel: MsgBox "Нажали кнопку Отмена", , ""
End Select
End If
Cancel = True
End Sub
Если этот вариант Вас устроит, то его необходимо будет доводить до ума.