I have code to automate pagination. It's quick and easy, but it Page breaks must be calculated by Excel before it will work. This used to be possible using ActiveWindow.View = xlPageBreakPreview : DoEvents . In the latest version this fails. It feels as though the "optimization" of the screen refresh has killed it. What now happens is that Excel waits until the worksheet is ready for user input and only then triggers a RePaint which will then (if we're in page break preview mode) calculate the page breaks for the sheet. In other words, it cannot be automated. If you make page breaks at an earlier point in the process, then the Repaint will destroy them (because it thinks page breaks have never been calculated). It is not acceptable for me to require users to make manual changes and manually update the page breaks in an automatically generated report. Easiest solution would be to know how to override the optimization and force a page break calculation. Failing that, I could paginate by code but would need to know how to tell Excel that the sheet has had page breaks calculated already.