エラーに注意!エクセルVBAで印刷プレビューで強制終了回避方法
印刷前に確認するために印刷プレビューを見ることがありますげ、VBAでやってみたらエラーになって強制終了するしか方法がなくなってしまったことありませんか?
VBAを使って印刷プレビューをするならば、必ずユーザーフォームを閉じてから印刷プレビューを行うというコードを忘れずに記述すると強制終了回避できますよ。
印刷プレビュー
印刷プレビューを行う方法はVBAを使わなくてもできます。
【ファイル】タブから印刷プレビュー
基本的な印刷プレビューの表示方法で、多くの方々がこの方法を使っていると思います。
まず最初にエクセルの左上にある【ファイル」タブをクリックします。
【ファイル】タブをクリックすると画面が切り替わるので、【印刷】タブをクリックします。
【印刷】タブをクリックすると印刷プレビューが表示されました。
ごく普通に行っている印刷プレビューの手順なのですが、2回クリックが必要です。
ショートカットキーで印刷プレビュー
エクセルには便利なショートカットキーが用意されいますが、実際に使っている人は少ないのかもしれません。
印刷プレビューにもショートカットキーが割り当てられていて、ctrlボタンはキーボードの左下端にあり、ctrlキーを押しながらアルファベットのPキーを押します。
この方法ならばマウス操作をせずにctrl+Pを同時押しで印刷プレビューが表示できます。
クイックアクセスツールバーのユーザー設定
はっきり言ってこんなところに設定メニューがあったなんて、知らなかったという人が多いです。
エクセルワークシート上の左上の方にある小さな▼っぽい印をクリックします。
なんとびっくり、クリックするとリストメニューが表示され、真ん中ぐらいに「印刷プレビューと印刷」がありますので、ここをクリックします。
すると、▼のマークの左側に新たに図柄が表示されて、この図柄をクリックすると印刷プレビューが表示されます。
と、このように印刷プレビューはVBAを使わなくても簡単にできますので、VBAプログラム中に確認するにはこれで十分ですが、VBAでの方法も確認しましょう。
VBAで印刷プレビュー
印刷プレビューを表示するにはPrintPreviewメソッドを使い、ユーザーフォームに配置したコマンドボタンを押すと表示させるVBAコードはこちらです。
Private Sub CommandButton1_Click()
ActiveSheet.PrintPreview
End Sub
- コマンドボタン1がクリックされたら
- 表示中のシートを印刷プレビューを行う
- マクロ記録終了
このままコマンドボタンを押してしまったら・・・
ctrl+alt+deleteでエクセルの強制終了するしか方法がありません。
簡単だ!できた~!と思ったら大間違いです!!!
エクセルがフリーズしますのでctrl+alt+deleteでエクセルの強制終了が必要になってしまいます。
どうやら、ユーザーフォームと印刷プレビューは同時に表示させてはいけないようなので、印刷プレビューが表示される前にユーザーフォームを閉じましょう。
Private Sub CommandButton1_Click()
Unload UserForm1
ActiveSheet.PrintPreview
End Sub
- コマンドボタン1がクリックされたら
- ユーザーフォーム1を閉じる
- 表示中のシートを印刷プレビューを行う
- マクロ記録終了
これで問題解決できましたね。