エクセルの印刷設定をVBAで設定する方法です。
サンプルで使用するワークシート:同じシートにあるデータの分割で数式も反映させる
目次
印刷設定の例
設定する箇所の例です。
- 印刷向き:横
- 縦横を何ページで印刷するか:横は1ページ、縦は自動
- 印刷タイトル:1行目
- ヘッダー右:日付
- フッター左:ファイルパス
- フッター右:ページ数/総ページ数




サンプルVBA(マクロ)
Worksheet オブジェクトの PageSetup プロパティを使います。
サンプルコード
Sub sample() With ActiveSheet.PageSetup .Orientation = xlLandscape .Zoom = False .FitToPagesTall = False .FitToPagesWide = 1 .PrintTitleRows = "$1:$1" .RightHeader = "&D" .LeftFooter = "&Z&F" .RightFooter = "&P/&N" End With End Sub
簡単な説明
- 2行目:アクティブシートに対して設定します。「With Worksheets("シート名")」でも可。
- 3行目:印刷向きは横
- 4行目:5行目と6行目の設定を有効にするために、ZoomプロパティをFalseに設定します
- 5行目:縦は自動で印刷
- 6行目:横は1ページで印刷
- 7行目:印刷タイトルを1行目にする
- 8行目:ヘッダー右に日付
- 9行目:フッター左にファイルパス
- 10行目:フッター右にページ数/総ページ数
わからない場合は、マクロの記録を開始した状態で設定し、できたコードの必要な部分だけ使えば簡単です。
サンプル例で実行した結果
同じシートにあるデータの分割で数式も反映させるでブックを分割したデータにマクロを実行しました。
I列以降は適当なデータを入力しています。

結果の一部
