複数シートの印刷設定を一括でそろえる(用紙・向き・1ページに収める)

公開日:2026年10月5日 執筆:Takuya カテゴリ:帳票・メール連携

シートごとにばらばらの印刷設定を、マクロで一括してそろえる方法です。用紙サイズ・向き・余白・1ページに収める設定・ヘッダーとフッターをまとめて設定します。

どんな場面で使うか

シートが何十枚もある報告書を印刷や PDF にしたとき、シートによって縦横の向きや余白が違い、はみ出して2ページに分かれてしまう、ということがあります。1枚ずつページ設定を開いて直すのは手間がかかります。

マクロで全シートのページ設定を同じ値にそろえれば、毎回同じ見た目で印刷できます。PDF を作るマクロ(請求書の一括作成など)の前処理としても役立ちます。

PageSetup で設定できる主な項目

ページ設定は Worksheet の PageSetup で行います。よく使う項目は次のとおりです。

  • PaperSize:用紙サイズ(xlPaperA4 など)
  • Orientation:向き(xlPortrait 縦/xlLandscape 横)
  • Zoom・FitToPagesWide・FitToPagesTall:拡大縮小と1ページに収める設定
  • LeftMargin など:余白(Application.CentimetersToPoints で cm 指定)
  • CenterFooter など:ヘッダー・フッター(&P でページ番号、&A でシート名)

コード

「表紙」以外の全シートを、A4横・幅を1ページに収める・余白1.5cm・フッターにシート名とページ番号、にそろえます。PageSetup の設定はプリンターとの通信が発生して遅いため、まとめて設定する前後で PrintCommunication を切り替えています。

Sub UnifyPageSetup()
    Dim ws As Worksheet
    Application.ScreenUpdating = False
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> "表紙" Then
            Application.PrintCommunication = False
            With ws.PageSetup
                .PaperSize = xlPaperA4
                .Orientation = xlLandscape
                .Zoom = False
                .FitToPagesWide = 1          ' 幅は1ページ
                .FitToPagesTall = False      ' 縦は自動(行が多ければ複数ページ)
                .LeftMargin = Application.CentimetersToPoints(1.5)
                .RightMargin = Application.CentimetersToPoints(1.5)
                .TopMargin = Application.CentimetersToPoints(1.5)
                .BottomMargin = Application.CentimetersToPoints(1.5)
                .CenterFooter = "&A &P / &N ページ"
                .PrintTitleRows = "$1:$1"    ' 1行目を各ページに見出しとして印刷
            End With
            Application.PrintCommunication = True
        End If
    Next ws
    Application.ScreenUpdating = True
    MsgBox "印刷設定をそろえました"
End Sub

コードのポイント

FitToPagesWide と FitToPagesTall を使うときは、先に Zoom を False にする必要があります。Zoom に数値が入っていると、1ページに収める設定が無視されます。

FitToPagesTall に False を指定すると、縦方向のページ数は自動になり、幅だけを1ページに収められます。縦も1ページにすると、行の多いシートで文字が極端に小さくなるため、明細のような長い表では幅だけをそろえるのがおすすめです。

注意点

PrintCommunication を False にしたままエラーで止まると、その後の印刷設定が反映されない状態になることがあります。エラー処理で True に戻すか、止まった場合は Excel を再起動してください。また、既定のプリンターがない PC では、ページ設定の変更自体がエラーになる場合があります。その場合は、Windows の設定で「Microsoft Print to PDF」などを既定のプリンターにしてから実行してください。

※用紙サイズや余白は、社内の帳票ルールに合わせて調整してください。

ほかの記事