【VBAリファレンス|実務向け】VBAマクロで印刷プレビューを効率的に制御する:PageSetupオブジェクトの活用術

スポンサーリンク

導入

実務において、定型レポートを特定の用紙サイズや倍率で印刷する作業は頻繁に発生します。マクロ記録機能を使うと便利ですが、出力されるコードは冗長になりがちです。今回は、PageSetupオブジェクトを整理して、印刷設定をスマートに管理する方法を解説します。この技術を習得することで、複数の印刷パターン(A4、B5、横向きなど)を即座に切り替えられるようになり、作業の自動化レベルが一気に向上します。

基礎知識

Excel VBAで印刷設定を操作するには、PageSetupオブジェクトを使用します。これは、ワークシートの「ページ設定」ダイアログにある項目(用紙サイズ、余白、ヘッダー・フッター、拡大縮小など)をプログラムから制御するためのものです。

記録されたマクロには、操作していない設定まで全て書き出される特性があります。これを「必要なプロパティだけ」に絞り込むことで、保守性が高く、読みやすいコードになります。

実装/解決策

印刷設定を記述する際は、Withステートメントを活用しましょう。これにより、何度も「ActiveSheet.PageSetup」と書く必要がなくなり、可読性が劇的に向上します。また、設定を共通化しておき、サイズや倍率だけを書き換えたプロシージャを複数用意することで、保守性に優れたプログラムが完成します。

サンプルプログラム

以下は、印刷設定を効率的に制御するためのサンプルコードです。A4用とB5用の設定を切り替える構成にしています。

Sub PrintSetup_A4()
‘ A4サイズで印刷プレビューを表示する
With ActiveSheet.PageSetup
.PaperSize = xlPaperA4 ‘ 用紙サイズをA4に設定
.Zoom = 114 ‘ 拡大縮小を114%に設定
.Orientation = xlPortrait ‘ 縦向き
End With

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

Sub PrintSetup_B5()
‘ B5サイズで印刷プレビューを表示する
With ActiveSheet.PageSetup
.PaperSize = xlPaperB5 ‘ 用紙サイズをB5に設定
.Zoom = 100 ‘ 拡大縮小を100%に設定
.Orientation = xlPortrait ‘ 縦向き
End With

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

応用・注意点

現場で活用する際のポイントを2点挙げます。

1. 不要な設定の削除: マクロ記録で出力される「LeftMargin(左余白)」や「PrintTitleRows(印刷タイトル)」などは、あえて指定しないことで、既存のシート設定を維持できます。必要な項目だけを書くのが、バグを防ぐコツです。
2. 環境依存への配慮: プリンターのドライバーによっては、指定した用紙サイズがサポートされていない場合があります。エラーを防ぐために、重要な印刷を行う場合は「On Error Resume Next」等でエラーハンドリングを行うか、事前にプリンターの対応状況を確認する運用を推奨します。

コードを整理することで、後から「拡大率を少し調整したい」といった修正がすぐに行えるようになります。ぜひご自身の業務に合わせてカスタマイズしてみてください。

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