ExcelVBA

Excel VBAで指定したエクセルファイルの印刷設定を変更してみた

エクセルファイルで設計書を作成した場合などに、ヘッダーやフッターを設定したり、印刷プレビューの設定を変更したりすることが多い。

今回は、Excel VBAを利用して、ヘッダーやフッターを設定したり、印刷プレビューを設定したりしてみたので、そのサンプルプログラムを共有する。

前提条件

下記記事の実装が完了していること。

Excel VBAで指定したエクセルファイルを編集する処理を実装してみたExcel VBAでは、他のエクセルファイルを開き、編集し、保存するような処理を実装することができる。今回は、その処理を行うサンプルプロ...

サンプルプログラムの作成

ファイル「EditExcel.xlsm」をコピーし、「EditExcelFormat.xlsm」とリネームする。その後、VBAのソースコードを以下のように変更する。

上記ソースコードは、前提条件のプログラムと比べ、指定したエクセルファイルの編集処理を、ヘッダー・フッター・印刷プレビューを編集する処理に変更している。また、エクセルの編集処理を早くするため、Application.ScreenUpdatingを更新する処理も追加している。

なお、実際に作成したVBAファイルの内容は、以下のサイトを参照のこと。
https://github.com/purin-it/vba/tree/master/excel-vba-set-printtype

サンプルプログラムの実行結果

サンプルプログラムの実行結果は、以下の通り。

1) 編集処理を行う「C:\tmp\テスト2.xlsx」の、プログラム実行前の印刷プレビュー結果の先頭2ページは以下の通りで、ヘッダーやフッターの設定は無く、印刷プレビューも崩れた状態になっている
サンプルプログラムの実行結果_1_1

サンプルプログラムの実行結果_1_2

2) 編集ファイル名を指定し、「編集」ボタンを押下
サンプルプログラムの実行結果_2

3) 編集処理が完了すると、以下のメッセージが表示される
サンプルプログラムの実行結果_3

4) 編集処理を行った「C:\tmp\テスト2.xlsx」の、プログラム実行後の印刷プレビュー結果(1シート目)は以下の通りで、ヘッダーやフッターが設定され、印刷プレビューも横向き1シートに整えられた状態になっている
サンプルプログラムの実行結果_4_1

サンプルプログラムの実行結果_4_2 サンプルプログラムの実行結果_4_3

5) 編集処理を行った「C:\tmp\テスト2.xlsx」の、プログラム実行後の印刷プレビュー結果(2シート目)は以下の通りで、こちらも、ヘッダーやフッターや印刷プレビューの設定がされていることが確認できる
サンプルプログラムの実行結果_5_1

サンプルプログラムの実行結果_5_2

要点まとめ

  • Excel VBAでは、PageSetup オブジェクトを設定することで、ヘッダーやフッターを設定したり、印刷プレビューを変更したりできる。
  • Application.ScreenUpdatingをfalseに設定することで、マクロ実行中の画面表示が更新されないように設定でき、VBAの処理を早くすることができる。