スポンサーリンク

印刷プレビューするとフリーズして操作不能になる

VBA印刷プレビューExcel-VBA

印刷範囲が用紙に納まっているかどうかを確認する「印刷プレビュー」をVBAを使って行うことありますよね。まずは、基本から。

スポンサーリンク

印刷プレビューを表示する方法

印刷プレビューを表示するには、PrintPreviewだけなのでとても簡単で、下記コードをワークシート上に配置したコマンドボタンにVBAコードを記述するだけです。

VBAコード

Sub 印刷プレビュー()
Activesheet.PrintPreview
End Sub

上記VBAコードで表示しているシートの印刷プレビューを表示できます。

ではこのVBAコードをユーザーフォームに配置したコマンドボタンに記述すると、通常はマクロ名の宣言部分 「Sub 印刷プレビュー()」を 「 Private Sub CommandButton1_Click() 」に代えるだけなのですが・・・

VBAコード

Private Sub CommandButton1_Click()
Activesheet.PrintPreview
End Sub

波乗りアヒル
波乗りアヒル

このままだとフリーズしますから絶対ダメ!

やってしまうと、下記のような印刷プレビュー画面とユーザーフォームが同時表示されて操作不能になってしまい、エクセルを強制終了するしかありません。

VBAコードユーザーフォームプレビューエラー

強制終了の方法は、パソコンのキーボード【ctrl+alt+delete】ですよね・・・保存もされず最悪消えてしまう事も。

解決策は至ってシンプルで、印刷プレビューを表示する前にユーザーフォームを消してしまえばいいのです。

VBAコード

Private Sub CommandButton1_Click()
Unload UserForm1
Activesheet.PrintPreview
End Sub

波乗りアヒル
波乗りアヒル

これでフリーズしなくて済みようになります。

Excel-VBAもくじへ

コメント