-1
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim fname As Variant, DateTime As String, myInitialFilename As String
On Error GoTo ErrorHandler
SaveAsUI = True
If SaveAsUI Then
Cancel = True 'Cancel the original SaveAs
DateTime = "_" & Format(Now(), "yyyy_mm_dd_hhmmss") '= " [yyyy_mm_dd]"
'DateTime = " [" & Format(Now(), "yyyy_mm_dd hhmm_ss") & "]" '= " [yyyy_mm_dd hhmm_ss]" (use instead if you want time in the name)
myInitialFilename = "Quote" 'EDIT THIS
'Get filename (with path) for saving
fname = Application.GetSaveAsFilename(InitialFileName:=myInitialFilename & DateTime, fileFilter:="Excel Marcro-Enabled Workbook (*.xlsm),*.xlsm")
If fname = False Then Exit Sub 'Exit if user hit Cancel
Application.EnableEvents = False 'Prevent this event from firing
ThisWorkbook.SaveAs Filename:=fname, FileFormat:=52
'52 = xlOpenXMLWorkbookMacroEnabled = xlsm (with macro's in 2007-2010)
Application.EnableEvents = True 'Re-enable events
End If
Exit Sub
ErrorHandler:
Application.EnableEvents = True
MsgBox "An error occured during save." & Err.Number, vbCritical, "Error"
End Sub`
強制的に保存または保存するために、VBAコードを少し書いていますが、これは正常に動作するファイルタイプ.xlsmです。しかし、コード自体が.xlsmの保存を強制するため、テンプレートファイルにVBAコードを保存することはできません。
私はテンプレートをコードなしで保存しましたが、コードを追加するとすぐに、コードがxslmとして保存されるため、xltmとして保存できなくなります。テンプレートを保存するベストプラクティスのソリューションをお探しですか?Excel 2016 VBA強制的に.xlsmに保存 - テンプレートの保存方法は?
おかげで、 キャシーB.
コードを入れるのが最適です。 –
fileType <> .xlt? – Jbjstam