ヘッダー等を設定しシートを連続印刷
マクロ講座31回
ワークシートを連続で繰り返し印刷するマクロ
ワークシートを連続印刷するマクロ
ワークシートを連続印刷するマクロを作成します。
(サンプルファイルは、こちらから 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してください。
今日の講義は以上です。お疲れ様でした。