- 締切済み
複数シートをVBAで印刷
エクセル2010VBAを使って仕事の効率化を勉強中です。 歳入日計表のシート31日分を作り、歳入月計表として合計をまとめていますが 日々印刷範囲を決めて一日分のシート印刷するのをVBA処理したいのですが できません。 1日分はこんな感じでできるのですが・・・ 31日分をどのように処理すれば日々印刷可能になるのでしょうか? お願いいたします! Sub 日計表印刷設定() With Worksheets("1") .PageSetup.PrintArea = "A2:G71" .PageSetup.LeftMargin = 55 .PageSetup.TopMargin = 40 .PageSetup.Zoom = 80 .PrintPreview End With End Sub
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kagakusuki
- ベストアンサー率51% (2610/5101)
歳入日計表の印刷範囲がどの様に決まっているのかが不明なのですが、1日から31日までどの日のシートであっても毎回同じA2:G71に決まっているという事なのでしょうか? もしそうなっていた場合には、単純にFor~Nextで1~31の各シートを繰り返し処理で印刷すれば済む話ではないでしょうか? Sub 日計表印刷設定() Dim i As Long For i = 1 To 31 If Not IsError(Evaluate("ROW('" & i & "'!A1)")) Then With Worksheets(i & "" ) .PageSetup.PrintArea = "A2:G71" .PageSetup.LeftMargin = 55 .PageSetup.TopMargin = 40 .PageSetup.Zoom = 80 .PrintPreview End With End If Next i End Sub
- ushi2015
- ベストアンサー率51% (241/468)
こんにちは 印刷するシートをアクティブ(開いて)にして、印刷範囲を選択して実行って 事でしょうか? Sub 日計表印刷設定() With ActiveSheet .PageSetup.PrintArea = Selection .PageSetup.LeftMargin = 55 .PageSetup.TopMargin = 40 .PageSetup.Zoom = 80 .PrintPreview End With End Sub
お礼
ありがとうございました! 助かりました!