So .. I had a great idea today to resolve this .. but then it killed excel, so I am back to nothing ...
This was my idea ... in ThisWorkbook, I created a private global variable "AllowPrint", then in the BeginPrint event, I checked "AllowPrint" to see if it is true or false, If it was True (meaning don't allow printing), then run the various subroutines needed, set Cancel to true, set AllowPrint to False, then use the PrintOut method to print.
My thought was that the PrintOut method would fire the BeginPrint event a second time ... I know folks are cringing due to the apparent circular nature of calling a printing method from within a BeginPrint event ... anyway, on the subsequent BeginPrint event, I would allow the print to complete and set AllowPrint = True, thus the next call should cause the BeginPrint event to fire twice.
So, I started printing .. and then excel crashed and burned ... I'll have to do more testing