スポンサーリンク
初めに
本記事では、VBAで改ページに関連する処理を以下の3つについて解説します。
- 改ページの位置を取得
- 改ページを指定した位置に設定
- 改ページを解除
改ページの位置取得
「HPageBreaks」で、水平方向に引かれた改ページの位置を取得する。
※一番下の改ページ位置は取得されない。これは、改ページという位置付けではなく印刷範囲という扱いになるため。
1 2 3 4 5 6 7 8 9 | Sub 改ページ位置取得() Dim i As Integer For i = 1 To ActiveSheet.HPageBreaks.Count MsgBox ActiveSheet.HPageBreaks(i).Location.Row - 1 Next i End Sub |
一番下の改ページ位置を取得したい場合は以下のコードを組み込むことで取得することが出来る。
1 | MsgBox Range(ActiveSheet.PageSetup.PrintArea).Cells(Range(ActiveSheet.PageSetup.PrintArea).Count).Row |
改ページの設定
「PageBreak 」に、「xlPageBreakManual」を設定することで水平方向に改ページを設定することが出来る。
指定した行の改ページを設定
11行目に改ページを設定する。
※1~10行目が1ページになる
1 2 3 | Sub 行の改ページ設定() ActiveSheet.Rows(11).PageBreak = xlPageBreakManual End Sub |
複数行の改ページを設定
「PageBreak 」で、10行ごとに、改ページを設定する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Sub 複数の改ページ設定() Dim breakPoint As Integer Dim rowCnt As Integer Dim endBreak As Integer Dim breakCnt As Integer breakPoint = 10 rowCnt = 1 endBreak = Range(ActiveSheet.PageSetup.PrintArea).Cells(Range(ActiveSheet.PageSetup.PrintArea).Count).row breakCnt = endBreak \ breakPoint For i = 1 To breakCnt rowCnt = rowCnt + breakPoint ActiveSheet.Rows(rowCnt).PageBreak = xlPageBreakManual Next i End Sub |
改ページの解除
対象の一行の改ページを解除したい場合は、改ページの設定時に使用した「PageBreak 」に「xlPageBreakNone」を設定することで解除できる。
対象のシート、または全シートの改ページを解除したい場合は、「ResetAllPageBreaks」を実行することで解除できる。
指定した行の改ページを解除
1 2 3 | Sub 行の改ページ解除() ActiveSheet.Rows(11).PageBreak = xlPageBreakNone End Sub |
指定したシートの改ページを解除
1 2 3 | Sub シートの改ページ解除() ActiveSheet.ResetAllPageBreaks End Sub |
全シートの改ページを解除
1 2 3 4 5 6 7 | Sub 全シートの改ページ解除() Dim i As Integer For i = 1 To Worksheets.Count Worksheets(i).ResetAllPageBreaks Next i End Sub |
まとめ
VBAで、改ページの位置の取得、設定、解除の方法を解説しました。
他にもVBAについて解説していますので、参考にしてみてください。
[Excelマクロ]初心者のためのVBA入門 使い方と基礎を学習ExcelのVBAを使えるようになるための基本を解説します。理解できればマクロを自作することが出来るでしょう。VBAで出来ることが全くわからない初心者でもわかりやすく解説しています。...
ABOUT ME
スポンサーリンク