Here is a way to wait after each use, rather than a fixed time after opening.
ThisWorkbook: These are the events that a User will trigger during use of the Workbook.
Option Explicit
Private Sub Workbook_Open()
RunTime
End Sub
Private Sub Workbook_Activate()
RunTime
End Sub
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
RunTime
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
RunTime
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
RunTime
End Sub
Module:
Dim EndTime As Date
Const WaitTime As String = "01:00:00"
Sub RunTime()
If Not IsNull(EndTime) Then
Application.OnTime _
EarliestTime:=EndTime, _
Procedure:="CloseWB", _
Schedule:=False
End If
EndTime = Now + TimeValue(WaitTime)
Application.OnTime _
EarliestTime:=EndTime, _
Procedure:="CloseWB", _
Schedule:=True
End Sub
Sub CloseWB()
Application.DisplayAlerts = False
With ThisWorkbook
.Sheets("Home").Select
.Saved = True
.Close
End With
End Sub