ExcelVBA ページ設定でExcel印刷時のレイアウトを自動指定する方法

 

ExcelVBA 印刷時のレイアウト(余白、用紙サイズ、縮尺、ヘッダー/フッターなど)を指定する機能。VBAを使えば、これらの設定を自動化し、統一したレイアウトで印刷可能にできます。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

日常業務でExcelを多用し、手動作業を減らしたいと考えている方へ
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事

 

Excel VBA 印刷時のページレイアウトシーン

以下のようなシーンで利用で表示します。

1.大量のシートの印刷設定を自動化
一括で同じ印刷レイアウトを適用したいとき。

2.印刷フォーマットの調整
特定のデザイン(例:横向き1ページに収める)で印刷する。

3.プロジェクト管理やレポート作成
一定のフォーマットで印刷可能な報告書を作成する。

使い方

VBAでは PageSetup オブジェクトを使用してページ設定を行います。たとえば、用紙サイズや印刷向き、縮尺、余白などの設定が可能です。

ポイント

1.実行速度
大量のシートに設定を適用する場合、処理に時間がかかることがあります。

2.設定内容の確認
設定項目によっては、印刷結果に影響を与えるため、事前にプレビューで確認しましょう。

3.既存の設定上書き
既存の設定を変更するため、必要であれば元に戻す処理も検討しましょう。

 

Excel VBA  印刷時のページレイアウトのサンプルコード

基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

基本的なページ設定(横向き、A4サイズ、1ページに収める)

Option Explicit

Sub SetPageSetup()
    Dim ws As Worksheet
    
    ' 対象のシートを指定
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ' ページ設定を適用
    With ws.PageSetup
        .Orientation = xlLandscape ' 横向き
        .PaperSize = xlPaperA4     ' A4用紙
        .FitToPagesWide = 1        ' 横方向1ページに収める
        .FitToPagesTall = 1        ' 縦方向1ページに収める
        .Zoom = False              ' 縮尺を無効にする
    End With
    
    MsgBox "ページ設定を完了しました!"
End Sub

余白とヘッダー・フッターの設定

Option Explicit

Sub SetMarginsAndHeaderFooter()
    Dim ws As Worksheet
    
    ' 対象のシートを指定
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ' ページ設定
    With ws.PageSetup
        .LeftMargin = Application.InchesToPoints(0.5)  ' 左余白0.5インチ
        .RightMargin = Application.InchesToPoints(0.5) ' 右余白0.5インチ
        .TopMargin = Application.InchesToPoints(1)    ' 上余白1インチ
        .BottomMargin = Application.InchesToPoints(1) ' 下余白1インチ
        
        ' ヘッダーとフッターを設定
        .CenterHeader = "レポート"   ' 中央ヘッダー
        .CenterFooter = "ページ &P / &N" ' 中央フッター(ページ番号)
    End With
    
    MsgBox "余白とヘッダー・フッターを設定しました!"
End Sub

すべてのシートに統一したページ設定を適用

Option Explicit

Sub ApplyPageSetupToAllSheets()
    Dim ws As Worksheet
    
    ' すべてのシートをループ
    For Each ws In ThisWorkbook.Sheets
        With ws.PageSetup
            .Orientation = xlPortrait ' 縦向き
            .PaperSize = xlPaperA4    ' A4用紙
            .FitToPagesWide = 1       ' 横1ページ
            .FitToPagesTall = False   ' 縦方向は制限なし
            .CenterHeader = "統一レポート" ' ヘッダー設定
        End With
    Next ws
    
    MsgBox "すべてのシートにページ設定を適用しました!"
End Sub

ページ設定をExcelVBAで行うことで、手動で設定する手間を省き、効率的に統一した印刷レイアウトを実現できます。特に、大量のシートを扱う場合に役立ちます。PageSetup を柔軟に活用して、印刷作業を簡単にしましょう。

 

 

Excel VBAで自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。