Excelで帳票を印刷するとき、「見切れてしまう」「不要な空白が印刷される」「フォントサイズや余白がバラバラ」といったトラブルに悩まされたことはないでしょうか。
これらの多くは、「印刷範囲」や「ページ設定」の調整漏れが原因です。
今回は、印刷前に自動で設定を整えるマクロを紹介します。定型帳票を出力する業務において、事前に整える作業を自動化しておくことで、誰でもミスなく印刷できるようになります。
印刷前に調整するマクロの具体例
次のコードでは、対象のシートで印刷範囲・拡大縮小・余白・中央配置・用紙サイズなどを自動調整しています。
Sub PrintSettingsAuto()
Dim ws As Worksheet
Set ws = ActiveSheet
With ws.PageSetup
' 使用しているセル範囲を印刷範囲に設定
.PrintArea = ws.UsedRange.Address
' 1ページに収める(横1ページ・縦無制限)
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = False
' 用紙サイズをA4に設定
.PaperSize = xlPaperA4
' 余白を最小限に設定
.TopMargin = Application.InchesToPoints(0.5)
.BottomMargin = Application.InchesToPoints(0.5)
.LeftMargin = Application.InchesToPoints(0.5)
.RightMargin = Application.InchesToPoints(0.5)
' 横・縦ともに中央に配置
.CenterHorizontally = True
.CenterVertically = True
' ヘッダー・フッターを空に
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
End With
MsgBox "印刷設定が完了しました", vbInformation
End Sub
このマクロを実行すれば、どのユーザーが出力しても印刷結果がブレにくくなり、きれいな帳票が出力されます。印刷設定の失敗によるやり直しが大幅に減ります。
UsedRangeとAddressの役割について
このマクロの中で使われている .UsedRange.Address はとても重要な部分です。
- UsedRange:シート内で実際に使われているセル範囲を自動的に特定します。空白のセルは含まれません。
- Address:UsedRangeで特定されたセル範囲のアドレス(例:”A1:D20″)を文字列として取得します。
つまり ws.UsedRange.Address とすることで、「このシートの中で実際に使っている部分だけを印刷対象にする」という設定が可能になります。
実装するメリット
帳票出力の前に自動で設定を整えておくことで、次のような利点があります。
- 用紙サイズ・余白などの設定漏れによるトラブルを防止
- 複数人での作業でも出力フォーマットを統一
- 頻繁に印刷する帳票の業務を安定化
- 印刷時に設定を手で変更する手間がなくなる
- プレビューや確認の時間も削減できる
さらに、書式やヘッダー設定もマクロ内で制御できるため、将来的に追加ルールが出てきても柔軟に対応可能です。
まとめ
Excelでの帳票印刷を安定させるには、「印刷設定を自動化する」ことが鍵になります。
- UsedRangeで印刷範囲を自動設定
- 拡大縮小や用紙サイズを事前に指定
- 余白や中央配置を整えてきれいに出力
マクロでこれらの設定を標準化しておけば、毎回同じ帳票品質を保つことができ、印刷ミスや作業ストレスを大きく減らせます。
「何度も同じ帳票を出す業務」には、こうした自動調整マクロの導入が非常に効果的です。


