次に「印刷タイトル」(見出し)を設定してみよう。
通常の印刷では、複数ページにわたったデータでは、例えば2枚目に表示される印刷には、特に設定しない限り「表の印刷タイトル行」は表示されない。今回は、2ページ目にずれ込んだ表にも「印刷タイトル行」を付けてみよう。「印刷タイトル行」を固定することで、わざわざ1枚目の表をめくってみて項目名を確認する必要がなくなる。
マクロはリスト4のようになる。
- Sub 表の項目名の印刷()
- With Worksheets("社員売上金額").PageSetup
- .Zoom = 100
- .PrintArea = "B1:E45"
- .PrintTitleRows = "$3:$3"
- .PrintTitleColumns = ""
- End With
- Worksheets("社員売上金額").PrintPreview
- End Sub
表の「印刷タイトル行」を設定するには、PrintTitleRowsプロパティを設定する。表の「印刷タイトル列」を設定するには、PrintTitleColumnsプロパティを使用する。
今回は、表の「印刷タイトル行」を設定するので、PrintTitleRowsプロパティに、「$3:$3」と設定して、行のタイトルに3行目を設定している。PrintColumnsには今回は何も設定しない。
PrintTitleRowsプロパティには$を使用して絶対参照としている。「$3:$3」のように行や列が変動しても変わらないものを「絶対参照」という。
絶対参照で、参照セルを設定する場合は、「$」マークを先頭に付ける。「A1」を絶対参照する場合は「$A$1」と記述する。
また、セル範囲に合わせて行番号や列番号が変化するものを「相対参照」という。普通に「A1」「B1」のように記述する。
実行すると図7のようになる。
最後に「印刷の実行」について解説する。いくら印刷プレビューで確認できても印刷できなければ意味がない。
印刷を実行するにはPrintOutメソッドを使用する。書式は下記の通りだ。
オブジェクト.PrintOut From,To,Copies,Preview,ActivePrinter,PrintToFile,Collate,PrintToFileName,IgnorePrintAreas
各引数の意味は表3を参照してほしい。
引数 | 意味 |
---|---|
From | 印刷開始ページ番号 |
To | 印刷終了ページ番号 |
Copies | 印刷部数 |
Preview | 印刷前にプレビューに切り替えるかどうかをTrueまたはFalseで設定。切り替える場合はTrue、既定値は切り替えないFalseになっている |
ActivePrinter | プリンタ名 |
PrintToFile | ファイルに出力する場合はTrueを設定。その場合は、下記の引数「PrintToFileName」でファイル名を設定する |
Collate | 部単位での印刷時にはTrueを設定 |
PrintToFileName | PrintToFileにTrueを設定した場合の、ファイル名を設定 |
IgnorePrintAreas | 「印刷範囲」を無視する場合は、True |
参考「Worksheet.PrintOut Method - MSDN」 |
図6の「社員売上金額」を印刷するマクロはリスト5だ。
- Sub 印刷の実行()
- Worksheets("社員売上金額").PrintOut Copies:=1
- End Sub
「社員売上金額」のワークシートを「1部」だけ印刷する。[印刷実行]というボタンを作成して、それにリスト5のマクロを登録して、実際に印刷してみた。
次に、複数のシートを印刷する方法を見てみよう。「社員売上金額」以外に「今年度の目標金額」というワークシート(図8)があった場合、このワークシートも印刷してみよう。
この「社員売上金額」と「今年度の目標金額」のワークシートを同時に印刷するにはリスト6のマクロを書く。
- Sub 複数シートの印刷()
- Worksheets(Array("社員売上金額", "今年度の目標金額")).PrintOut Copies:=1
- End Sub
連載第9回にも出てきたが、Array関数を使ってブック内の複数のシートを参照する。Array関数を使うとリスト6のように記述して、複数のワークシートを印刷できる。
「複数のワークシート印刷」ボタンを作成して、リスト6のマクロを登録して、実行してみた。これも問題なく印刷できた。
以上で「印刷」に関する解説は終了だ。次回は「フォームの作成」や「コントロール」の使用方法について解説する。お楽しみに。
【2016/9/15】Windows 10、Excel 2016に対応しました。
PROJECT KySS 薬師寺 国安(やくしじ くにやす)
1950年生まれ。フリーVBプログラマ。高級婦人服メーカーの事務職に在職中、趣味でVBやActiveXに取り組み、記事を執筆。2003年よりフリー。.NETやRIAに関する執筆多数。Windowsストアアプリも多数公開中(約270本)。
Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。
Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。
Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。
PROJECT KySSは、1997年に薬師寺聖と結成したコラボレーション・ユニット
Copyright © ITmedia, Inc. All Rights Reserved.
HTML5�ス�ス陋幢ススX 鬮ォ�ェ陋滂ソス�ス�コ闕オ譁溷クキ�ケ譎「�ス�ウ驛「�ァ�ス�ュ驛「譎「�ス�ウ驛「�ァ�ス�ー