印刷する前に処理を実行するBeforePrintイベント
イベントマクロ 15回
Workbook.BeforePrint イベント
ブックまたはその中に含まれる内容を印刷する前に発生します。
BeforePrintの構文
Private Sub Workbook_BeforePrint(Cancel As Boolean)
引数名 | データ型 | 説明 |
---|---|---|
Cancel | Boolean | イベントが発生すると、 False が渡されます。 イベント プロシージャでこの引数に True を設定すると、プロシージャが終了してもブックは印刷されません。 |
Private Sub Workbook_BeforePrint(Cancel As Boolean) ’処理したい内容をここに記述 End Sub
見出し3
1. 次のコードでは、印刷される前に、作業中のブックのすべてのワークシートを再計算します。
変数wsを宣言しています。
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim ws As Worksheet For Each ws In Worksheets ws.Calculate Next End Sub
2. こちらは、印刷したPDFファイルですが、内容が違っています。数式のRand関数が再計算されたのです。
3. シート1を見ると、印刷直前に再計算されているので、数値が代わっています。
印刷直前にヘッダーとフッターを設定する
4. 印刷のたびにヘッダー、フッターを設定するのは面倒です。このコードでは直前に指定した書式でヘッダーを設定するようにします。
左と中央、そして右の3つのヘッダーを設定しましょう。
中央のヘッダーCenterHeaderは、和暦で表記することにします。
Private Sub Workbook_BeforePrint(Cancel As Boolean) With ActiveSheet.PageSetup .LeftHeader = Format(Date, "yyyy年m月d日") .CenterHeader = Format(Date, "ggge年m月d日") .RightHeader = Format(Now, "h時m分") End With End Sub
いかがでしょうか、Workbook.BeforePrint イベントは、工夫しだいでとても便利につかえそうなイベントですね。次回はシートが挿入されたときに実行するNewSheetイベントをご紹介します