Excel 2013 マクロ講座
ワークシートを連続で繰り返し印刷するマクロ
ワークシートを連続印刷するマクロ
ワークシートを連続印刷するマクロを作成します。
(サンプルファイルは、こちらから 2013マクロ講座31回サンプルデータ)
ヘッダー等を設定し連続印刷するマクロ
ページを中央に配置し、ヘッダーを設定して、和暦の印刷日を入力してから、印刷することにしましょう。


ワークシートやグラフシートの印刷時のページ設定を行うには、PageSetupオブジェクトを使用します。
PageSetup オブジェクト
PageSetupオブジェクトには、すべてのページ設定属性 (左余白、下余白、用紙サイズなど) が、プロパティとして含まれています。
PageSetupオブジェクトには、すべてのページ設定属性 (左余白、下余白、用紙サイズなど) が、プロパティとして含まれています。
シートの枚数分の印刷設定を行う
ページ設定は、シートの枚数分行います。
そこで、For〜Nextステートメントを利用します。
そこで、For〜Nextステートメントを利用します。
For〜Nextステートメントの使い方
For〜Nextステートメントの使い方
最初に、Forで繰り返し回数を宣言します。
繰り返し回数は、カウンタの変化範囲(開始値と終了値)で指定します。

最初に、Forで繰り返し回数を宣言します。
繰り返し回数は、カウンタの変化範囲(開始値と終了値)で指定します。

たとえば、「開始値が1,終了値が5」なら繰り返しは、5回。
「開始値が6、終了値が10」であっても繰り返し回数は5回です。
繰り返しの終了位置はNextで指定します。
「開始値が6、終了値が10」であっても繰り返し回数は5回です。
繰り返しの終了位置はNextで指定します。
For〜Next が実行されると、カウンタの値が開始値から1ずつカウントアップされ、終了値に達すると繰り返しが終了します。
ワークシートを全部連続印刷する場合として、開始値は1,終了値は、Worksheets.Countとなります。
ワークシートを全部連続印刷する場合として、開始値は1,終了値は、Worksheets.Countとなります。
ワークシートをカウントする変数は、i(お決まりの)型は整数型Integer
Worksheets(i).Activateでシートの1枚目からアクティブにして、左右中央配置にして、垂直方向の設定はなし、そして、右側のヘッダーに印刷日と日付(和暦)を入れ、プリントアウトの前にプレビューという内容をワークシートの枚数分繰り返します。
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回行っています。

1枚目には、ヘッダー右に日付(西暦表示)を入れ、2枚目にはヘッダー中央に(控え)を追加で記載しています。
印刷するという命令.PrintOut Preview:=True を2回行っています。

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してください。
今日の講義は以上です。お疲れ様でした。
For i = 1 To Worksheets.Count - 1
として、-1してください。
今日の講義は以上です。お疲れ様でした。
スポンサーリンク
スポンサーリンク