印刷範囲が用紙に納まっているかどうかを確認する「印刷プレビュー」を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
波乗りアヒル
このままだとフリーズしますから絶対ダメ!
やってしまうと、下記のような印刷プレビュー画面とユーザーフォームが同時表示されて操作不能になってしまい、エクセルを強制終了するしかありません。
強制終了の方法は、パソコンのキーボード【ctrl+alt+delete】ですよね・・・保存もされず最悪消えてしまう事も。
解決策は至ってシンプルで、印刷プレビューを表示する前にユーザーフォームを消してしまえばいいのです。
VBAコード
Private Sub CommandButton1_Click()
Unload UserForm1
Activesheet.PrintPreview
End Sub
波乗りアヒル
これでフリーズしなくて済みようになります。

波乗りアヒル
Excel-VBAを使えば数分かかる作業がたったの1秒で終了しますよ!