【VBAリファレンス|実務向け】第18回 VBAマクロで印刷プレビューを操作する 1/4

スポンサーリンク

導入:印刷プレビューの自動化がなぜ重要か

実務において、毎日のように定型帳票を印刷している方は多いはずです。その際、「用紙サイズをA4に設定し、拡大縮小率を調整して1ページに収める」といった手作業を繰り返していませんか?この操作をVBAで自動化することで、ヒューマンエラーを防ぎ、印刷設定のバラつきをゼロにすることができます。今回は、印刷プレビューをプログラムから操作するための第一歩を学びます。

基礎知識:PageSetupオブジェクトとは

Excel VBAで印刷設定を操作する際、最も重要なのがPageSetupオブジェクトです。これはシートの「ページ設定」ダイアログボックスに含まれるすべての項目(用紙サイズ、余白、印刷の向き、拡大縮小など)を制御するためのオブジェクトです。
印刷プレビューを表示させるには、対象となるシート(Worksheetオブジェクト)に対して、PrintPreviewメソッドを使用します。このメソッドを使うことで、ユーザーは印刷前に最終確認を行うことができます。

実装:印刷設定の基本手順

印刷処理を自動化する際の流れは以下の3ステップです。
1. 対象のシートを指定する。
2. PageSetupオブジェクトを通じて、用紙サイズや倍率などのプロパティを設定する。
3. PrintPreviewメソッドを呼び出してプレビュー画面を表示する。

サンプルプログラム:A4用紙に収める設定例

以下のコードは、アクティブシートに対して印刷設定を行い、プレビューを表示する実用的な例です。そのまま標準モジュールに貼り付けて実行してください。

Sub SetPrintAndPreview()
‘ 対象シートをアクティブなシートに設定
Dim ws As Worksheet
Set ws = ActiveSheet

‘ ページ設定を操作
With ws.PageSetup
‘ 用紙サイズをA4に設定
.PaperSize = xlPaperA4
‘ 印刷の向きを縦に設定
.Orientation = xlPortrait
‘ 拡大縮小なしで1ページに収める設定
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
‘ 余白の設定(左右中央揃え)
.CenterHorizontally = True
End With

‘ 印刷プレビューを表示
ws.PrintPreview
End Sub

応用・注意点

現場で活用する際の注意点は、「プリンタの設定」に依存する場合があることです。PCに接続されているプリンタのドライバによっては、特定のプロパティが反映されにくいことがあります。
また、PageSetupプロパティは処理が重くなる傾向があります。大量のシートをループ処理で設定変更する場合は、画面更新を停止する(Application.ScreenUpdating = False)ことで、マクロの実行速度を劇的に改善できます。

まずは上記のコードで、手元の帳票が正しくプレビューされるか確認してみてください。次回は、より複雑なレイアウト変更や、複数シートを一括で設定する方法について解説します。

タイトルとURLをコピーしました