Word lets you control the DocumentBeforePrint event, which in turn gives one access to controlling the display of the print dialog box. This event needs to be manually added to your VBA code. Whether you control the dialog for a single document or all future documents will depend on if the code is placed within a single document or the template that generates new documents.
Add this code to the VBA Declarations section for ThisDocument:
Option Explicit
Private WithEvents app As Application
Then edit the Document_New()
and Document_Open()
subs to include this line:
Set app = Application
Finally, create the DocumentBeforePrint sub (again in ThisDocument) with the following code:
Private Sub app_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
'Invoke your macro to print a letter twice with different settings here
Cancel = True
End Sub
The Cancel = True
line cancels the standard Print dialog box, so that the code does not try to print the document twice. This solution runs on the premise that your existing macro prints a document without accessing the print function via a method such as Dialogs(wdDialogFilePrint).Show
, which would display the print dialog box. Hope this helps.