• 締切済み

複数シートを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

みんなの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 歳入日計表の印刷範囲がどの様に決まっているのかが不明なのですが、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)
回答No.1

こんにちは 印刷するシートをアクティブ(開いて)にして、印刷範囲を選択して実行って 事でしょうか? Sub 日計表印刷設定()   With ActiveSheet     .PageSetup.PrintArea = Selection     .PageSetup.LeftMargin = 55     .PageSetup.TopMargin = 40     .PageSetup.Zoom = 80     .PrintPreview   End With End Sub

ah1229117
質問者

お礼

ありがとうございました! 助かりました!