HOME > 即効テクニック > Excel VBA > ページ設定関連のテクニック > シートにページ設定を行う(PageSetupオブジェクト)

シートにページ設定を行う(PageSetupオブジェクト)|Excel VBA

ページ設定関連のテクニック

シートにページ設定を行う(PageSetupオブジェクト)

(Excel 97/2000/2002/2003/2007/2010/2013/2016)

ワークシートやグラフシートの印刷時のページ設定を行うには、PageSetupオブジェクトを使用します。PageSetupオブジェクトには、左余白、下余白、用紙サイズなどの、すべてのページ設定属性がプロパティとして含まれています。

構文 Object.PageSetup     取得のみ
設定項目 内容
Object Worksheet、Chartオブジェクト [省略不可]

次のサンプルは、アクティブブックのすべてのシートについて中央ヘッダーにシート名を設定し、左フッターにセルA1の値を設定します。
PageSetupオブジェクトはWorksheetオブジェクト、Chartオブジェクトの下位オブジェクトです。WorksheetsコレクションやChartsコレクションを使用して、複数シートのページ設定を一度に行うことはできません。次のサンプルのように1シートずつ設定してください。

●サンプル1●

Sub Sample()
    Dim ws As Worksheet
    For Each ws In Worksheets
        With ws.PageSetup
           .CenterHeader = ws.Name
           .LeftFooter = ws.Range("A1").Value
        End With
    Next ws
End Sub

サンプル1は、マクロ実行時のシート名やセルA1の値をヘッダーやフッターに設定します。
マクロ実行後にシート名を変更した場合、その変更は反映されません。

[ページ設定]ダイアログボックスから「シート名」を指定したときのように、印刷時のシート名をヘッダーやフッターに設定するには、書式コード「&A」を使用します。
書式コードを使ってヘッダーやフッターを指定する方法については、「ヘッダー/フッターを設定する」を参照してください。

ただし、セルの値をヘッダーやフッターに設定する書式コードはありません。
セルの値を設定するには、サンプル1のようにマクロ実行時の値を設定するか、行タイトルを表すPrintTitleRowsプロパティや列タイトルを表すPrintTitleColumnプロパティを使用して、行や列を指定します。