PrintPreviewが表示できない
最近、VBA開発でハマったケースです。
印刷プレビュー機能を実装していた時に、印刷プレビューが表示されない現象が発生しました。
印刷プレビュー機能を実装していた時に、印刷プレビューが表示されない現象が発生しました。
■現象
・フリーズのように見える(動作が固まる?)が、マウス操作は可能である。
・Escキーを押すと、すぐにマクロ動作がストップする。(フリーズはしていない)
・ステップインでプログラムを1行ずつ実行すると、正常にPrintPreviewが表示される。
・PrintOutでの印刷は正常に動作する。
・フリーズのように見える(動作が固まる?)が、マウス操作は可能である。
・Escキーを押すと、すぐにマクロ動作がストップする。(フリーズはしていない)
・ステップインでプログラムを1行ずつ実行すると、正常にPrintPreviewが表示される。
・PrintOutでの印刷は正常に動作する。
PrintPreviewが表示されないコード(Excel 2016で再現)
Public Sub sample_error_printpreview() '■描画を停止 Application.ScreenUpdating = False '■新規ブックを作成し、セルA1にデータを入れる Workbooks.Add Range("a1") = 1 '■シートが空だとPrintPreviewはできません '■プリントプレビューのコードでエラーは発生しないが、一向にプレビュー表示しない ActiveSheet.PrintPreview '■描画を再開 Application.ScreenUpdating = True End Sub
Application.ScreenUpdating = Falseの場合、PrintPreviewが表示されない仕様のようです。
上記であれば、ググれば出てきます。
ActiveSheet.PrintPreviewの前にScreenUpdating=TrueにすればOKと考え、
下記のようにコードを変更しましたが、プレビュー表示が出来ません。
下記のようにコードを変更しましたが、プレビュー表示が出来ません。
Application.ScreenUpdating = False ActiveSheet.PrintPreview '→上記の場合でも、プレビュー表示されない
結果、PrintPreviewが関係するコードの場合は、Application.ScreenUpdating = Falseを行わない事で、
正常に、印刷プレビューを確認しました。
その他
・ActiveSheet.PrintOut Preview:=Trueでも、同様に表示されません。
・印刷範囲を再設定しても、同様に表示されません。
・UserFormからのPrintPreviewであろうが、WorkSheetからのPrintoPreviewでも、表示されません。
コメント