導入:印刷プレビューの自動化がなぜ重要か
実務において、毎日のように定型帳票を印刷している方は多いはずです。その際、「用紙サイズを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)ことで、マクロの実行速度を劇的に改善できます。
まずは上記のコードで、手元の帳票が正しくプレビューされるか確認してみてください。次回は、より複雑なレイアウト変更や、複数シートを一括で設定する方法について解説します。
