- ベストアンサー
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に移動してから印刷するのですが、 設定した改ページは保持されるのでしょうか??
- みんなの回答 (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
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
>うまくいきません どううまく行かないのか、ぐらい質問に書かなきゃ。 ー Sub test01() ActiveSheet.ResetAllPageBreaks End Sub Sub test02() ActiveSheet.HPageBreaks.Add Before:=Range("a7") End Sub でやってみるとうまく行くようですが。 ーー >改ページは保持されるのでしょうか 別ブックで、改ページ線が出ておれば、そのように保存される。
お礼
ありがとうございます。 コードはご提示いただいたもので問題ないようです。 どうやら、元々のシートの設定で、改ページを指定した箇所どおりに 入らないようになっていました。 私の説明不足で、申し訳ありませんでした。
お礼
ありがとうございます。 コードはご提示いただいたもので問題ありませんでした。 シートの設定で確認不足なところがあり、 うまく改ページがはいりませんでした。 現在は改ページ入るようになりました。 ありがとうございました