Também pode usar esse código que funciona. Insira no mesmo local que o outro código:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
Dim path As String
Dim name As String
path = "Caminho onde será salvo o arquivo"
name = "Nome do arquivo"
ActiveWorkbook.SaveAs path & name & ".xlsm", FileFormat:=52
Application.DisplayAlerts = True
End Sub
Esse método funciona mesmo quando for um arquivo novo, que ainda não está salvo no PC.
Para saber mais sobre o comando ActiveWorkbook.SaveAs acesse o link abaixo:
https://msdn.microsoft.com/pt-br/librar ... 41185.aspx
Abraço!