Hi again,
I was hesitant on the whole Save point... There is a BeforeSave but not an AfterSave event in Word. The only way I could think of doing the PDF save after the Save completed was to evoke a Windows change to evoke the WindowsEvent in Word & do the PDF save then. All very, very mucky. So not a solution! It's such a pity there is no AfterSave event!
However, you can override the Word FileSave process.
Note: This means your program cannot have bugs.
If you SaveAs on an existing file to a new file name, you would have to process your PDF save manually when doing so. But this will trap the save when you want to create your PDF backups.
I've written code for you with comments. You can add this to your template, but be careful with Word overrides.
Let me know if it helps you with your PDF save request though.
Kind regards
Fiona
Option Explicit
Public Sub FileSave()
' Note: FileSave overrides Word's FileSave command!
On Error GoTo ErrorHandler
With ActiveDocument
' Check whether it has a path meaning it's been saved before
If .Path = vbNullString Then
' Show the SaveAs dialog
Word.Dialogs(wdDialogFileSaveAs).Show
Else
' Save the document
.Save
End If
' Was the file saved in the SaveAs Dialog
If .Saved = True Then
' You will need ensure only documents based on this template
' are saved as PDF. Save your source document as a *.dotm
' When you create new instances of the template, this code will run
If .AttachedTemplate = ThisDocument Then
' You don't want to save PDFs of the template, just documents
If LCase(Right(.FullName, 5)) = ".docx" Then
' Not sure if you want to check before saving the PDF?
If MsgBox("Would you like to save a PDF copy?", _
vbYesNo, "Save PDF version") = vbYes Then
' It's active already though
.Activate
' Call the procedure you were given to create the PDF
Call PDFSave.SaveAsDocX_PDF
End If
End If
End If
End If
End With
Exit Sub
ErrorHandler:
' Quite crucial if an error occurs!
MsgBox "An error occurred on FileSave!" & vbCr & vbCr & _
Err.Number & " " & Err.Description, vbOKOnly + vbExclamation, "FileSave Error"
Err.Clear
End Sub