エラーに注意!エクセルVBAで印刷プレビューで強制終了回避方法

印刷プレビューVBA

印刷前に確認するために印刷プレビューを見ることがありますげ、VBAでやってみたらエラーになって強制終了するしか方法がなくなってしまったことありませんか?

VBAを使って印刷プレビューをするならば、必ずユーザーフォームを閉じてから印刷プレビューを行うというコードを忘れずに記述すると強制終了回避できますよ。

目次

印刷プレビュー

印刷プレビューを行う方法はVBAを使わなくてもできます。

【ファイル】タブから印刷プレビュー

基本的な印刷プレビューの表示方法で、多くの方々がこの方法を使っていると思います。

まず最初にエクセルの左上にある【ファイル」タブをクリックします。

エクセルファイルボタン
エクセルファイルボタン

【ファイル】タブをクリックすると画面が切り替わるので、【印刷】タブをクリックします。

ワークシート印刷タブ

【印刷】タブをクリックすると印刷プレビューが表示されました。

ワークシート印刷プレビュー
クリックで拡大します

ごく普通に行っている印刷プレビューの手順なのですが、2回クリックが必要です。

ショートカットキーで印刷プレビュー

エクセルには便利なショートカットキーが用意されいますが、実際に使っている人は少ないのかもしれません。

印刷プレビューにもショートカットキーが割り当てられていて、ctrlボタンはキーボードの左下端にあり、ctrlキーを押しながらアルファベットのPキーを押します。

ctrl+p印刷プレビューショートカットキー

この方法ならばマウス操作をせずにctrl+Pを同時押しで印刷プレビューが表示できます。

クイックアクセスツールバーのユーザー設定

はっきり言ってこんなところに設定メニューがあったなんて、知らなかったという人が多いです。

エクセルワークシート上の左上の方にある小さな▼っぽい印をクリックします。

クイックアクセスツールバー1

なんとびっくり、クリックするとリストメニューが表示され、真ん中ぐらいに「印刷プレビューと印刷」がありますので、ここをクリックします。

クイックアクセスツールバー2

すると、▼のマークの左側に新たに図柄が表示されて、この図柄をクリックすると印刷プレビューが表示されます。

クイックアクセスツールバー3

と、このように印刷プレビューはVBAを使わなくても簡単にできますので、VBAプログラム中に確認するにはこれで十分ですが、VBAでの方法も確認しましょう。

VBAで印刷プレビュー

印刷プレビューを表示するにはPrintPreviewメソッドを使い、ユーザーフォームに配置したコマンドボタンを押すと表示させるVBAコードはこちらです。

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

Private Sub CommandButton1_Click()
ActiveSheet.PrintPreview
End Sub

解説
  1. コマンドボタン1がクリックされたら
  2. 表示中のシートを印刷プレビューを行う
  3. マクロ記録終了

このままコマンドボタンを押してしまったら・・・

印刷プレビュー押したらフリーズして動かなくなった
印刷プレビュー押したらフリーズして動かなくなった

ctrl+alt+deleteでエクセルの強制終了するしか方法がありません。

タスクマネージャーが開くのでエクセルを選択してタスク終了
タスクマネージャーが開くのでエクセルを選択してタスク終了

こんな感じになってしまうのでやってはいけません。

簡単だ!できた~!と思ったら大間違いです!!!

エクセルがフリーズしますのでctrl+alt+deleteでエクセルの強制終了が必要になってしまいます。

どうやら、ユーザーフォームと印刷プレビューは同時に表示させてはいけないようなので、印刷プレビューが表示される前にユーザーフォームを閉じましょう。

エラー回避した印刷プレビューVBA

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

解説
  1. コマンドボタン1がクリックされたら
  2. ユーザーフォーム1を閉じる
  3. 表示中のシートを印刷プレビューを行う
  4. マクロ記録終了

これで問題解決できましたね。

目次