トップ > 汎用コード > 印刷設定のコピー

シートの印刷設定を別のシートにコピーする2021.04.01

あるシートの印刷設定を、別のシートにコピーするマクロです。
印刷範囲や余白、倍率を別のシートに設定するのは面倒・・・。
そのような時に使用します。

「定数」のシートの名前を設定し、マクロを実行するだけです。

※印刷設定を行うマクロは 一般的なマクロより実行完了までに時間を要します


【お薦め】マクロ・プロシージャを管理する無料のツール!
 Excelマクロ管理ツール

サンプルコード2021.04.01

コードの貼り付け場所   VBAコードをカラーで印刷・Web掲載するためのツールはこちら

Sub Copy_PageSetup_1() '「Sheet1」の印刷設定を「Sheet2」にコピーする

    '定数
    Const conShA As String = "Sheet1" '印刷設定を参照するシートの名前
    Const conShB As String = "Sheet2" '印刷設定を行いたいシートの名前
    
    Dim myPSA    As PageSetup
    Dim myPSB    As PageSetup
    Set myPSA = Worksheets(conShA).PageSetup
    Set myPSB = Worksheets(conShB).PageSetup
    Application.PrintCommunication = False
    With myPSB
        .PrintTitleRows = myPSA.PrintTitleRows  'タイトル行
        .PrintArea = myPSA.PrintArea            '印刷範囲
        .LeftHeader = myPSA.LeftHeader          'ヘッダー
        .CenterHeader = myPSA.CenterHeader
        .RightHeader = myPSA.RightHeader
        .LeftFooter = myPSA.LeftFooter          'フッター
        .CenterFooter = myPSA.CenterFooter
        .RightFooter = myPSA.RightFooter
        .LeftMargin = myPSA.LeftMargin          '余白
        .RightMargin = myPSA.RightMargin
        .TopMargin = myPSA.TopMargin
        .BottomMargin = myPSA.BottomMargin
        .HeaderMargin = myPSA.HeaderMargin
        .FooterMargin = myPSA.FooterMargin
        .PrintHeadings = myPSA.PrintHeadings    '行列番号の印刷
        .PrintGridlines = myPSA.PrintGridlines  '枠線の印刷
        .PrintComments = myPSA.PrintComments    'コメントの印刷
        .CenterHorizontally = myPSA.CenterHorizontally  '水平中央設定
        .CenterVertically = myPSA.CenterVertically      '垂直中央設定
        .Orientation = myPSA.Orientation        '印刷向き
        .Draft = myPSA.Draft                    '簡易印刷
        .PaperSize = myPSA.PaperSize            '用紙サイズ
        .FirstPageNumber = myPSA.FirstPageNumber        '先頭ページ番号
        .Order = myPSA.Order                    'ページ番号付けの方向
        .BlackAndWhite = myPSA.BlackAndWhite    '白黒印刷
        .Zoom = myPSA.Zoom                      '倍率
        .PrintErrors = myPSA.PrintErrors        'エラーセルの印刷表記方針
    End With
    Application.PrintCommunication = True
End Sub


・「印刷設定を参照するシートの名前」
  印刷設定コピー元のシートの名前です。環境に合わせ適宜変更してください。
・「印刷設定を行いたいシートの名前」
  印刷設定を行うシートの名前です。環境に合わせ適宜変更してください。

次のコードは、アクティブブック全てのワークシートに、あるシートの印刷設定をコピーものするです。
※一般的なマクロより実行完了までに時間を要します

Sub Copy_PageSetup_2() 'アクティブブック全てのシートに印刷設定をコピーする

    '定数
    Const conShA As String = "Sheet1" '印刷設定を参照するシートの名前
    
    Dim myPSA    As PageSetup
    Set myPSA = Worksheets(conShA).PageSetup
    Dim Sh       As Worksheet
    Application.PrintCommunication = False
    For Each Sh In ActiveWorkbook.Worksheets
        If Sh.Name <> conShA Then
            With Sh.PageSetup
                .PrintTitleRows = myPSA.PrintTitleRows  'タイトル行
                .PrintArea = myPSA.PrintArea            '印刷範囲
                .LeftHeader = myPSA.LeftHeader          'ヘッダー
                .CenterHeader = myPSA.CenterHeader
                .RightHeader = myPSA.RightHeader
                .LeftFooter = myPSA.LeftFooter          'フッター
                .CenterFooter = myPSA.CenterFooter
                .RightFooter = myPSA.RightFooter
                .LeftMargin = myPSA.LeftMargin          '余白
                .RightMargin = myPSA.RightMargin
                .TopMargin = myPSA.TopMargin
                .BottomMargin = myPSA.BottomMargin
                .HeaderMargin = myPSA.HeaderMargin
                .FooterMargin = myPSA.FooterMargin
                .PrintHeadings = myPSA.PrintHeadings    '行列番号の印刷
                .PrintGridlines = myPSA.PrintGridlines  '枠線の印刷
                .PrintComments = myPSA.PrintComments    'コメントの印刷
                .CenterHorizontally = myPSA.CenterHorizontally  '水平中央設定
                .CenterVertically = myPSA.CenterVertically      '垂直中央設定
                .Orientation = myPSA.Orientation        '印刷向き
                .Draft = myPSA.Draft                    '簡易印刷
                .PaperSize = myPSA.PaperSize            '用紙サイズ
                .FirstPageNumber = myPSA.FirstPageNumber        '先頭ページ番号
                .Order = myPSA.Order                    'ページ番号付けの方向
                .BlackAndWhite = myPSA.BlackAndWhite    '白黒印刷
                .Zoom = myPSA.Zoom                      '倍率
                .PrintErrors = myPSA.PrintErrors        'エラーセルの印刷表記方針
            End With
        End If
    Next
    Application.PrintCommunication = True
End Sub

・「印刷設定を参照するシートの名前」
  印刷設定コピー元のシートの名前です。環境に合わせ適宜変更してください。


ページトップへ戻る

Excel 汎用コード

Copyright(C) 2009- 坂江 保 All Rights Reserved.