アプリケーション オブジェクトを含むアドインがあります。オブジェクトは WithEvents と宣言されています。これにより、ユーザーがファイルを保存するたびに、一部のデータ ポイントを中央データベースにフラッシュできます。これはほとんどの場合機能します。ただし、1 人のユーザーが Excel アプリケーションを終了し、[保存] ダイアログ ボックスが表示されます。ファイルを保存せずに Excel を終了すると、WorkbookBeforeSave イベントが発生しないようです。
強調しておくと、ユーザーが CTRL-S を押すか、保存ボタンを押すと、イベントが発生することを確認しました。また、アプリケーションを終了してもイベントが発生しないことを確認しました。
いくつかの回避策を考えることができます (たとえば、10 秒ごとに自動的に保存するなど)。誰でもこの動作を確認できますか、および/または誰かに救済策がありますか?
Option Explicit
Private WithEvents mapp As Excel.Application
Private Sub mapp_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI As Boolean, Cancel As Boolean)
' Sanity preservation device
Msgbox "WorkbookBeforeSave event fired."
SaveSomeData Wb
End Sub