さて、以下の元の答えで、もう少し調査した後、私は自分自身を思いついた。
開発者のセクションを開くと、シートが見つかります。このコードを以下のThisWorkbookに配置してください。これにより、コードがシート全体で機能するようになります。私は今、10:00分の初期タイマーがあり、事後に活動がある場合は05:00分のタイマーがある場所に設定しました。あなたはそれをあなたが望むものに変えることができます。
Option Explicit
Private Sub Workbook_Open()
EndTime = Now + TimeValue("00:10:00")
RunTime
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If EndTime Then
Application.OnTime _
EarliestTime:=EndTime, _
Procedure:="CloseWB", _
Schedule:=False
EndTime = Empty
End If
EndTime = Now + TimeValue("00:05:00")
RunTime
End Sub
この下の部分は、新しく作成されたモジュールに入る必要があります。好きな名前を付けてください。私の名前はSaveWBです。
Option Explicit
Public EndTime
Sub RunTime()
Application.OnTime _
EarliestTime:=EndTime, _
Procedure:="CloseWB", _
Schedule:=True
End Sub
Sub CloseWB()
Application.DisplayAlerts = False
With ThisWorkbook
ThisWorkbook.Close savechanges:=True
End With
End Sub
コードを次のように変更しました:
With ThisWorkbook
.Save
.Saved = True
.Close
End With
その上にあったものに。
With ThisWorkbook
ThisWorkbook.Close savechanges:=True
End With
私が作成した部分、最初に投稿された部分は、終了時に機能しますが、保存されません。あなたがそれであなたがすることをして、あなたが適切であると思うようにそれを変えてください、しかし私はそれがうまくいったことをうれしく思います。