【ExcelVBA・マクロ】印刷設定を一括で整えるマクロ|ページ設定・余白・A4対応を自動化【コピペOK】

ExcelVBA

Excelで請求書や報告書を印刷するたびに、こんな作業をしていませんか?

  • 列幅を調整する
  • 中央揃えにする
  • 余白や用紙サイズを設定する

これらはすべて、VBAで自動化できます。
この記事では、印刷前の設定をワンクリックで整えるマクロを初心者向けに解説します。


スポンサーリンク
スポンサーリンク

この記事でできること

  • 印刷用レイアウトを自動で整える
  • 列幅・配置・フォントを統一
  • 印刷範囲を自動設定
  • A4・余白設定まで一括対応

印刷設定を自動化するマクロ(コピペOK)

Option Explicit

Sub FormatForPrint()

    With ActiveSheet

        ' フォント設定
        .Cells.Font.Name = "メイリオ"
        .Cells.Font.Size = 10

        ' 列幅を自動調整
        .Columns.AutoFit

        ' 中央揃え(横・縦)
        .Cells.HorizontalAlignment = xlCenter
        .Cells.VerticalAlignment = xlCenter

        ' 印刷向き(横)
        .PageSetup.Orientation = xlLandscape

        ' 印刷範囲(使用範囲)
        .PageSetup.PrintArea = .UsedRange.Address

        ' 用紙サイズ(A4)
        .PageSetup.PaperSize = xlPaperA4

        ' 余白設定
        With .PageSetup
            .TopMargin = Application.CentimetersToPoints(2)
            .BottomMargin = Application.CentimetersToPoints(2)
            .LeftMargin = Application.CentimetersToPoints(2)
            .RightMargin = Application.CentimetersToPoints(2)
        End With

        ' ヘッダー・フッター削除
        .PageSetup.CenterHeader = ""
        .PageSetup.CenterFooter = ""

    End With

    MsgBox "印刷用フォーマットに整えました。", vbInformation

End Sub

コードのポイント解説

① Columns.AutoFit

列幅を自動調整します。
文字の長さに合わせて最適化されます。

② 中央揃え設定

.Cells.HorizontalAlignment = xlCenter

見た目を整えるための基本設定です。

③ 印刷範囲の自動設定

.PageSetup.PrintArea = .UsedRange.Address

使用されているセル範囲だけを印刷対象にします。


応用①:縦向きにする

.PageSetup.Orientation = xlPortrait

応用②:1ページに収める

With .PageSetup
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
End With

報告書などでよく使う設定です。


応用③:特定範囲だけ印刷する

.PageSetup.PrintArea = "A1:D50"

実務での活用例

  • 請求書の印刷フォーマット統一
  • 報告書のレイアウト調整
  • 月次資料の印刷準備
  • 複数シートの印刷前処理

特に、毎回同じ形式で印刷する業務では非常に効果があります。


よくあるエラーと対処法

① 印刷範囲が広すぎる

UsedRangeが広がっている可能性があります。
不要なセルを削除して保存し直してください。

② 設定が反映されない

別のシートがアクティブになっている可能性があります。

③ コードがエラーになる

コピー時に次の問題が発生することがあります。

  • 全角文字
  • 見えない特殊文字

その場合は、該当行を削除して手入力すると解決することがあります。


さらに便利にする方法(ボタン化)

このマクロを図形に登録すれば、ワンクリックで実行できます。

shp.OnAction = "FormatForPrint"

まとめ

  • 印刷設定はVBAで一括自動化できる
  • 列幅・配置・余白をまとめて整えられる
  • UsedRangeで範囲自動設定
  • 実務の印刷作業を大幅に効率化できる

印刷前の調整作業は地味ですが時間がかかる作業です。
このマクロを使えば、ワンクリックで整った印刷レイアウトが完成します。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

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