ヘッダー等を設定しシートを連続印刷

マクロ講座31回 
マクロでヘッダー等を設定しシートを連続印刷

ワークシートを連続で繰り返し印刷するマクロ

ワークシートを連続印刷するマクロ

ワークシートを連続印刷するマクロを作成します。

(サンプルファイルは、こちらから 2013マクロ講座31回サンプルデータ

ヘッダー等を設定し連続印刷するマクロ

ページを中央に配置し、ヘッダーを設定して、和暦の印刷日を入力してから、印刷することにしましょう。
連続印刷するマクロ1
ワークシートやグラフシートの印刷時のページ設定を行うには、PageSetupオブジェクトを使用します。 PageSetup オブジェクト
PageSetupオブジェクトには、すべてのページ設定属性 (左余白、下余白、用紙サイズなど) が、プロパティとして含まれています。

シートの枚数分の印刷設定を行う

ページ設定は、シートの枚数分行います。
そこで、For~Nextステートメントを利用します。

For~Nextステートメントの使い方

For~Nextステートメントの使い方
最初に、Forで繰り返し回数を宣言します。
繰り返し回数は、カウンタの変化範囲(開始値と終了値)で指定します。
たとえば、「開始値が1,終了値が5」なら繰り返しは、5回。
「開始値が6、終了値が10」であっても繰り返し回数は5回です。
繰り返しの終了位置はNextで指定します。
For~Next が実行されると、カウンタの値が開始値から1ずつカウントアップされ、終了値に達すると繰り返しが終了します。
ワークシートを全部連続印刷する場合として、開始値は1,終了値は、Worksheets.Countとなります。
ワークシートをカウントする変数は、i(お決まりの)型は整数型Integer
Worksheets(i).Activateでシートの1枚目からアクティブにして、左右中央配置にして、垂直方向の設定はなし、そして、右側のヘッダーに印刷日と日付(和暦)を入れ、プリントアウトの前にプレビューという内容をワークシートの枚数分繰り返します。
Sub 連続印刷()
    Dim i As Integer
    For i = 1 To Worksheets.Count
        Worksheets(i).Activate
        With ActiveSheet
            .PageSetup.CenterHorizontally = True
            .PageSetup.CenterVertically = False
            .PageSetup.RightHeader = "印刷日:" & _
                Format(Date, "ggge年m月d日")
            .PrintOut Preview:=True
        End With
    Next i
End Sub
    

ヘッダーを変えて控えも印刷

今度は、請求書などで、控えも印刷したいケースです。つまり同じシートで設定を変えて2枚印刷するということになります。
1枚目には、ヘッダー右に日付(西暦表示)を入れ、2枚目にはヘッダー中央に(控え)を追加で記載しています。
印刷するという命令.PrintOut Preview:=True を2回行っています。
PrintOut
Sub 連続印刷控えも印刷()
    Dim i As Integer
    For i = 1 To Worksheets.Count
        Worksheets(i).Activate
        With ActiveSheet
            .PageSetup.CenterHorizontally = True
            .PageSetup.CenterVertically = False
            .PageSetup.RightHeader = "印刷日:" & _
                Format(Date, "yyyy年m月d日")
            .PrintOut Preview:=True
            .PageSetup.CenterHeader = "(控)"
            .PrintOut Preview:=True
            .PageSetup.CenterHeader = ""
        End With
    Next i
End Sub
    
こちらのコードでは、控え用もプリントアウトします。
あ
応用として、印刷したくないシートがブックの後ろ(右)に1枚ある時は、
For i = 1 To Worksheets.Count - 1
として、-1してください。
今日の講義は以上です。お疲れ様でした。