Excelでの印刷関連の設定は複数シートまとめて行う事ができないので
マクロで記録して、ちょこっとVBAを書いて連続処理することで手抜きを実現しています。
手順の概略
1.開発タブ→マクロの記録 で、行いたい印刷設定を行う。→開発タブが出ていない場合にはググって調べてください。設定で出せます。
2.以下のテンプレコードをVBAに貼り付ける。
3.テンプレコードを実行する
テンプレートコード(そのまま貼り付けて1行だけ修正)
Public Sub ExecuteAllSheets()
Dim ws As Worksheet
'高速化対応:再描画、都度計算を無効とする
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'エラーハンドリングの開始
On Error GoTo ErrorHandler
'全シートに対して繰り返し処理を行う
For Each ws In ThisWorkbook.Worksheets
ws.Select
Call Macro1 '(ここを変更)ここで繰り返し行いたい処理を指定
Next
'エラーハンドリングをやめてプログラム終了処理へ
On Error GoTo 0
GoTo Program_Exit
ErrorHandler:
MsgBox "エラーが発生しました" & vbCrLf & _
"No." & Err.Number & vbCrLf & _
"Message : " & Err.Description, vbExclamation, ""
Program_Exit:
'高速化対応:解除
Application.ScreenUpdating = True
Application.Calculation = xlCalculationManual
End Sub
【補足】
・プリンタ関連の処理を記憶すると、自働で作成されたコード中に以下が記録されるケースがあります。→ActiveWindow.SelectedSheets.PrintPreview
これが記録されていると、処理が連続で行われません。(プレビューで止まる)
・余白調整、ヘッダフッタの一括設定等々、画面でできることはすべて処理できます。
→どこで何ができるかは自動作成されたコードを見て判断してください。
→どこで何ができるかは自動作成されたコードを見て判断してください。
0 件のコメント:
コメントを投稿