• ベストアンサー

VBAで別シートに改ページをして印刷する

現在アクティブになっているシート(sheet1)内で 合計値を算出し、別シート(sheet2)に出力する処理をしています。 二つは同じbookです。 小計値を出力したタイミングで改ページを挿入したいのですが、 うまくいきません。何か方法があるのでしょうか? with sheet1 loop ・・・小計処理 ・・・sheet2に小計値セット Set ast = ActiveWorkbook ast.Worksheets("sheet2").HPageBreaks.Add Before:=Range("a7") '(↑a7は仮でいれています。実際は行変動) end loop ・・・合計値出力 endwith また、最終的にはsheet2を別bookに移動してから印刷するのですが、 設定した改ページは保持されるのでしょうか??

質問者が選んだベストアンサー

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.2

細かい部分までは書けないが、こんな具合かな~ 別のブックへ移動しても設定した改ページは保持されると思いますよ。 Sub test()   With Worksheets("Sheet1")     '     wR = 0     Exitflg = False     Do       '・・・小計処理(小計する条件が満たすまで)       wR = wR + 1       subTot = subTot + .Cells(wR, 3)       '       '       With Worksheets("Sheet2")         '・・・sheet2に小計値セット         wR = wR + 1         .Cells(wR, 3) = subTot         '・・・改ページを挿入         .HPageBreaks.Add Before:=.Range("A" & wR + 1)         '・・・合計処理         allTot = allTot + subTot         subTot = 0       End With       '       '       '・・・小計処理終了の時       Exitflg = True     Loop Until Exitflg = True     '・・・合計値出力     wR = wR + 1     .Cells(wR, 3) = allTot   End With End Sub

shigetiyo
質問者

お礼

ありがとうございます。 コードはご提示いただいたもので問題ありませんでした。 シートの設定で確認不足なところがあり、 うまく改ページがはいりませんでした。 現在は改ページ入るようになりました。 ありがとうございました

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

>うまくいきません どううまく行かないのか、ぐらい質問に書かなきゃ。 ー Sub test01() ActiveSheet.ResetAllPageBreaks End Sub Sub test02() ActiveSheet.HPageBreaks.Add Before:=Range("a7") End Sub でやってみるとうまく行くようですが。 ーー >改ページは保持されるのでしょうか 別ブックで、改ページ線が出ておれば、そのように保存される。

shigetiyo
質問者

お礼

ありがとうございます。 コードはご提示いただいたもので問題ないようです。 どうやら、元々のシートの設定で、改ページを指定した箇所どおりに 入らないようになっていました。 私の説明不足で、申し訳ありませんでした。

関連するQ&A

専門家に質問してみよう