VBAで自動化 VBA一覧 ファイル・印刷操作 印刷設定

【VBA】印刷プレビューを表示する方法と活用例

Excelで印刷する前に、レイアウトを確認しておきたいことがよくあります。
VBAを使うと、ワンクリックで印刷プレビューを表示し、内容をチェックすることが可能です

この記事では、Excel VBAを使って印刷プレビューを表示する方法や、便利な応用テクニックについて解説します。

基本的な印刷プレビューの表示方法

PrintPreviewメソッドの基本

PrintPreviewメソッドを使用すると、最新のシートや指定範囲の印刷プレビューを表示できます。

ActiveSheet.PrintPreview

📌このコードを実行すると、アクティブなシートの印刷プレビューが開きます!
📌印刷する前にレイアウトを確認できるので、誤った印刷を防ぐことができます!

✅ シート全体の印刷プレビュー

Sub ShowPrintPreview()

ActiveSheet.PrintPreview

End Sub

📌アクティブなシートの印刷プレビューを表示!

✅ 印刷プレビューを閉じずに継続

通常、PrintPreviewは閉じて VBA の実行が行われます。
以下のようにEnableCancelKey使うと、ユーザーが閉じても処理を継続できます。

Sub ShowPrintPreviewWithoutInterrupt()

Application.EnableCancelKey = xlDisabled
ActiveSheet.PrintPreview
Application.EnableCancelKey = xlInterrupt

End Sub

📌プレビューを閉じてもスムーズに次の処理を実行可能!

特定の範囲のみをプレビュー

印刷範囲を指定してからプレビューを表示すると、必要な部分だけをプレビュー可能です!

✅ 指定範囲を印刷プレビュー

Sub ShowPrintPreviewWithRange()

ActiveSheet.PageSetup.PrintArea = "$A$1:$D$20"
ActiveSheet.PrintPreview

End Sub

📌A1:D20だけを印刷プレビュー!

✅選択した範囲をプレビュー

Sub ShowPrintPreviewFromSelection()

If Not Selection Is Nothing Then

ActiveSheet.PageSetup.PrintArea = Selection.Address
ActiveSheet.PrintPreview

Else

MsgBox "範囲を選択してください!", vbExclamation

End If

End Sub

📌ユーザーが選択した範囲をプレビュー! 📌
範囲が選択されていない場合はメッセージを表示!

複数シートの印刷プレビュー

✅ ブック内のすべてのシートをプレビュー

Sub ShowPrintPreviewAllSheets()

Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets

ws.PrintPreview

Next ws

End Sub

📌全シートの印刷プレビューを順番に表示! 📌
シートのレイアウトを確認するのに便利!

【VBA】複数シートを印刷する方法と活用例

✅ 特定のシートだけプレビュー

Sub ShowPrintPreviewSpecificSheets()

Sheets(Array("Sheet1", "Sheet2")).PrintPreview

End Sub

📌Sheet1とだけSheet2をプレビュー!

印刷プレビューのカスタマイズ

✅ 横向き・縦向きを設定

Sub ShowPrintPreviewWithOrientation()

With ActiveSheet.PageSetup

.Orientation = xlLandscape ' 横向き

End With

ActiveSheet.PrintPreview

End Sub

📌横向き(xlLandscape)に設定してプレビュー!

✅ 1 ページにまとめてプレビュー

Sub ShowPrintPreviewFitToOnePage()

With ActiveSheet.PageSetup

.Zoom = False ' 自動調整を有効化
.FitToPagesWide = 1 ' 横1ページ
.FitToPagesTall = 1 ' 縦1ページ

End With

ActiveSheet.PrintPreview

End Sub

📌データを1ページにまとめてプレビュー!
📌長いレポートや表の印刷便利!

【VBA】印刷時に 1 ページにまとめる方法と応用テクニック

✅ヘッダー・フッターを設定

Sub ShowPrintPreviewWithHeaderFooter()

With ActiveSheet.PageSetup

.CenterHeader = "会社名"
.RightHeader = "ページ &[Page] / &[Pages]"
.CenterFooter = "作成日: &[Date]"

End With

ActiveSheet.PrintPreview

End Sub

📌ヘッダーに「会社名」、フッターに「作成日」を追加してプレビュー!

印刷プレビューボタンを作成

ボタンをクリックして印刷プレビューを実行すると、より便利に!

✅ 印刷プレビューボタンの作成手順

  1. Excelの「開発」タブを開く
    • 「開発」タブがない場合 → ファイルオプションリボンのユーザー設定で「開発」にチェック
  2. 「挿入」→「フォームコントロール」→「ボタン」を選択
  3. ワークシート上にボタンを配置
  4. 「マクロの登録」ウィンドウで、以下のVBAコードを登録

Sub PrintPreviewButton()

ActiveSheet.PrintPreview

End Sub

📌ボタンをクリックするだけでプレビューが開きます!

ユーザー選択型の印刷プレビュー

✅ ユーザーがシート選択

Sub ShowPrintPreviewForSelectedSheet()

Dim wsName As String
wsName = InputBox("プレビューを表示するシート名を入力してください:", "印刷プレビュー")

If wsName <> "" Then

On Error Resume Next
Sheets(wsName).PrintPreview
If Err.Number <> 0 Then

MsgBox "シートが見つかりません!", vbExclamation

End If
On Error GoTo 0

Else

MsgBox "キャンセルされました。", vbInformation

End If

End Sub

📌ユーザーが指定したシートの印刷プレビューを表示! 📌
シートが存在しない場合はエラーメッセージを表示!


まとめ

機能VBAコード
シート全体をプレビューActiveSheet.PrintPreview
特定範囲のみプレビュー.PageSetup.PrintArea = "$A$1:$D$20"
選択範囲をプレビューSelection.AddressPrintArea設定した
全シートを順番にプレビューFor Each ws In Sheets: ws.PrintPreview: Next ws
特定のシートのみプレビューSheets(Array("Sheet1", "Sheet2")).PrintPreview
1ページにまとめてプレビュー.FitToPagesWide = 1, .FitToPagesTall = 1
ヘッダー・フッターを追加.CenterHeader.CenterFooter
ユーザー指定のシートをプレビューInputBoxでシートを選択
おすすめの活用方法

印刷プレビューを活用すれば、誤った印刷を防げる!
「選択範囲だけプレビュー」や「複数シートを一括プレビュー」も便利!
ボタンを作成すれば、ワンクリックでプレビューを実行可能!

    -VBAで自動化, VBA一覧, ファイル・印刷操作, 印刷設定