エクセルで印刷する前に確認の為に印刷プレビューを実行することがあると思いますが、フリーズして操作不能になってしまった経験はありませんか?
ユーザーフォームに間違ったVBAコードを書いてしまうと起きてしまうエラーなので、トラブルにならないようにする対処法をご紹介します。
印刷プレビューを表示するVBA
VBAコードを使って印刷プレビューを表示するには、PrintPreviewだけなのでとても簡単です。
ワークシート上のコマンドボタン
下記コードをワークシート上に配置したコマンドボタンにVBAコードを記述するだけで、印刷プレビューができます。
Sub 印刷プレビュー()
Activesheet.PrintPreview
End Sub
- 「印刷プレビュー」というプログラム名を実行する
- 表示されているシートの印刷プレビューを表示する
- マクロ記録終了
このように書いたVBAコードで表示しているシートの印刷プレビューを表示できます。
ユーザーフォーム上のコマンドボタン
それでは次に、このVBAコードをユーザーフォームに配置したコマンドボタンに記述すると、通常はマクロ名の宣言部分 「Sub 印刷プレビュー()」を 「 Private Sub CommandButton1_Click() 」に代えるだけなのですが・・・
Private Sub CommandButton1_Click()
Activesheet.PrintPreview
End Sub
- コマンドボタン1がクリックされたら
- 表示されているシートの印刷プレビューを表示する
- マクロ記録終了

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


やってしまうと、下記のような印刷プレビュー画面とユーザーフォームが同時表示されて操作不能になってしまい、エクセルを強制終了するしかありません。
こうなってしまったら強制終了するしかないので、パソコンのキーボード【ctrl+alt+delete】ですよね・・・
保存もされずに作業した内容が最悪消えてしまう事も。
エラー回避するVBAコード
先ほど書いたVBAコードでは、ユーザーフォームが表示されたままにもかかわらず、印刷プレビューまで表示させてしまった為にどちらの操作もできなくなったことが原因です。



解決策は至ってシンプルで、印刷プレビューを表示する前にユーザーフォームを消してしまえばいいのです。
そこで、印刷プレビューを表示させる直前にユーザーフォームを閉じるようにVBAコードを追加して書くことで解決です。
Private Sub CommandButton1_Click()
Unload UserForm1
Activesheet.PrintPreview
End Sub
- コマンドボタン1がクリックされたら
- ユーザーフォーム1を閉じる
- 表示されているシートの印刷プレビューを表示する
- マクロ記録終了



たったこれだけのVBAコードを入れ忘れるだけでフリーズしてしまうので、マクロを使う時はエラー回避するためのVBAコードはとても重要ですよ。
関連記事
-
めんどうな印刷確認を省略してVBAで印刷範囲を指定して印刷する方法
表などを印刷する時に、印刷範囲が決まっていることが多いのに、毎回印刷プレビューで確認したりプリンターの設定確認をするのは面倒だと思いませんか? そこで予め印刷… -
VBAで印刷プレビューするとフリーズして操作不能になる時の対処法
エクセルで印刷する前に確認の為に印刷プレビューを実行することがあると思いますが、フリーズして操作不能になってしまった経験はありませんか? ユーザーフォームに間… -
エクセルのセル値を取得して印刷ページ数・枚数を自動変更する方法
ページを印刷する時に、印刷ページや枚数を選ぶ作業って面倒だと思いませんか? エクセルで印刷するに毎回【ファイル】➡【印刷】を選ぶところから始まり、ページ… -
エクセルVBAでテキストボックスに入力した数字で印刷枚数を指定する
ユーザーフォームに配置したテキストボックスに入力した数字に応じて印刷枚数が指定できたら便利だと思いませんか? ワークシート上で【ファイル】➡【印刷】でペ… -
エクセルVBAで未入力データがあるかどうか確認してから印刷する方法
エクセルで表や請求書などを印刷する時に、必要なデータが未入力のままで気づかずに印刷してしまったことありませんか? 紙の無駄になるので印刷する前に自動的に請求書…
紅葉スポット
-
城峯公園で十月桜ともみじの紅葉のピンクと赤のコラボの絶景へ
群馬県との県境で標高500mにある高台に位置し、下久保ダム(神流湖)を眺めることができる城峯公園には、なんと晩秋から初冬にかけて開花し、別名十月桜とも呼ばれてい… -
養老渓谷紅葉ライトアップへ上総中野駅からバスで滞在時間3時間
懐かしい国鉄車両に乗車できるいすみ鉄道に乗って、昭和の風情が残る養老渓谷の温泉街で地元振興もかねて「養老渓谷もみじまつり」が行われ、ライトアップも行いながら… -
花貫渓谷の汐見滝吊り橋は茨城県人気紅葉スポットでライトアップは幻想的
花貫川沿いに遊歩道が整備されていて、途中に汐見滝吊り橋があり紅葉と一緒ミニられる事で撮影スポットになっていて、茨城県の人気紅葉スポットとして有名です。 紅葉の… -
龍王峡駅から徒歩で紅葉や虹見の滝へ鬼怒川温泉駅からバスなら10分
【紅葉見頃】10月下旬~11月中旬 鬼怒川温泉と川治温泉の間に位置して、鬼怒川沿いに龍王峡自然研究路をいう遊歩道が整備されているので、火山の噴火によってできた岩… -
日本庭園「松雲山荘」へ柏崎駅から徒歩圏内の大正時代からの紅葉名所
紅葉見頃 10月下旬~11月下旬 約3,000本つつじやもみじなどで大正時代に作られた日本庭園で、柏崎ガス創設者の飯塚謙三氏から柏崎市に移譲され無料で庭園内を散策でき… -
富津市の紅葉名所もみじロードへ上総湊駅や浜金谷駅からバスで行く
JR内房線の上総湊駅と浜金谷駅からバスで行くことができますが、もみじロードは10㎞もあるので歩いて全てを見ることはかなり難しいと思いますので、それぞれ行ける範囲…