2023/12/30

Notes - Excel 連携:#30)印刷の設定(ヘッダーとフッター)

Notes から Excel を操作する方法について紹介する連載『Notes - Excel 連携』の 30 回目です。前回に続き、帳票の印刷で 2 ページ以上になった場合の設定に関してです。今回は、ページ番号を表示するときに使用するヘッダーとフッターについてです。


ヘッダーとフッターの設定

Excel では[ページ レイアウト]の[印刷タイトル]を開き、『ページ設定』の画面から[ヘッダー/フッター]タブを開きます。

コンボボックスから選択し設定するのですが、出来合いの設定ではなく、より詳細に設定したい場合には、[ヘッダーの編集]ボタンをクリックします。例えば帳票の右上に "( 1 / 5 )" と総ページ数と現在のページを表示する場合、次のように設定します。

この画面からもわかるようにヘッダーの設定には、左 / 中央 / 右 の 3 種類があることがわかります。フッターも同様なので合計 6 箇所の設定があるということですね。


この設定を LotusScript から行うには、お察しの通り PageSetup オブジェクトのプロパティで設定します。プロパティは 6 種類それぞれ存在しています。

LeftHeader CenterHeader RightHeader
LeftFooter CenterFooter RightFooter


上記例の通り右上にページ番号を表示する場合には、次のように記述します。

   'ヘッダー
   voSheet.PageSetup.RightHeader = "( &P / &N )"

ヘッダー/フッターでは、"&P" がページ番号、"&N" が総ページ数に置き換えられ出力されます。プログラムで設定するには、Excel の設定画面とは違う値を指定します。Microsft Learn でこれらプロパティを調べても何を設定すれはよいかの記述がないようです。仕方がないので、私はマクロの記録で確認しています。


印刷の設定の全体

ここまで 3 回にわたって印刷の設定に関してまとめました。設定を行う関数 xPageSetup の全体は次のようになります。

Function xPageSetup(voSheet As Variant)
   'すべての列を 1 ページに印刷
   voSheet.PageSetup.Zoom = False
   voSheet.PageSetup.FitToPagesWide = 1
   voSheet.PageSetup.FitToPagesTall = False

   '印刷範囲の設定
   voSheet.PageSetup.PrintArea = CCToAA(2, 9)

   '列タイトル
   voSheet.PageSetup.PrintTitleRows = voSheet.Rows("3:5").Address

   'ヘッダー
   voSheet.PageSetup.RightHeader = "( &P / &N )"
End Function


実行して出力された Excel 帳票を印刷プレビューで表示すると次のようになります(コピペで行数を増やし 2 ページとなるよう加工)。

◇ 1 ページ目


◇ 2 ページ目


前回 Notes - Excel 連携 次回


0 件のコメント:

コメントを投稿