I have the following code that works great for a .xlsm file:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With ThisWorkbook
If Len(Dir(.FullName)) Then
.Saved = True
On Error Resume Next
.ChangeFileAccess Mode:=xlReadOnly
On Error GoTo 0
SetAttr .FullName, vbNormal
Kill...