Excel VBA 改ページを設定する

スポンサーリンク

改ページを設定する方法

改ページを設定するには以下のプロパティかメソッドを使用します。

  • Range【レンジ】オブジェクトのPageBreak【ページブレーク】 プロパティ
    指定したセルの上に水平、左に垂直の改ページを設定します。
  • HPageBreaks【エイチページブレークス】コレクションのAddメソッド
    指定したセルの上に水平な改ページを設定します。
  • VPageBreaks【ブイページブレークス】コレクションのAddメソッド
    指定したセルの左に垂直な改ページを設定します。

改ページを解除する方法

改ページを解除するには、以下のプロパティかメソッドを使用します。

  • Range【レンジ】オブジェクトのPageBreak【ページブレーク】 プロパティ
    指定したセルの上の水平、左の垂直の改ページを解除します。
  • WorkSheet【ワークシート】オブジェクトのResetAllPageBreaks【リセットオールページブレークス】メソッド
    ワークシート上のすべての改ページを解除します。

以上のプロパティやメソッドについての解説をします。

PageBreak【ページブレーク】 プロパティ

指定したセル範囲に改ページを設定するには、Range【レンジ】オブジェクトのPageBreak【ページブレーク】 プロパティを使用します。Break【ブレーク】切断するという意味があります。

PageBreak【ページブレーク】 プロパティの書式と設定値の説明

オブジェクト.PageBreak = 設定値

  • オブジェクト(必須)
    改ページを設定するRangeオブジェクトを指定します。選択したセルの上に水平、左に垂直の改ページが設定されます。改ページが設定できないセルや行、列(A1セル、Rows(1)、Columns(1))を設定した場合はエラーになります。
  • 設定値(必須)
    改ページの挿入方法をXlPageBreak 列挙型の定数で指定します。
XlPageBreak 列挙型の定数
定数 内容
xlPageBreakManual 改ページは手動で挿入されます。
指定した位置にする場合に指定します。
xlPageBreakNone ワークシートに改ページは挿入されません。
改ページを解除する場合に指定します。
xlPageBreakAutomatic Excel が自動的に改ページを追加します。

E10セルを基準に改ページを設定するコード例

Sub 改ページ()
ActiveSheet.Range("E10").PageBreak = xlPageBreakManual
End Sub

実行結果

データ範囲に5行おきに改ページを設定するコード例

Sub 改ページ2()
Dim i As Long
Dim 最終行 As Long
最終行 = Cells(Rows.Count, 1).End(xlUp).Row
For i = 6 To 最終行 Step 5
ActiveSheet.Rows(i).PageBreak = xlPageBreakManual
Next i
End Sub

実行結果


※改ページを解除する場合は上記のコード例の場合、PageBreakプロパティの設定値をxlPageBreakNoneに指定します。


HPageBreaks.Addメソッド

水平な改ページを設定するにはHPageBreaks【エイチページブレークス】コレクションの
Add【アド】メソッドを使用します。HPageBreaksのHはHorizontal【ホリゾンタル】の略で、水平という意味がありHPageBreaks【エイチページブレークス】コレクションはワークシート内のすべての水平な改ページを表すコレクションでWorksheet【ワークシート】オブジェクトのHPageBreaks【エイチページブレークス】プロパティを使用して取得します。

HPageBreaks.Addメソッドの書式と設定値(引数)の説明

オブジェクト.HPageBreaks.Add( Before )

  • オブジェクト(必須)
    Worksheets【ワークシーツ】コレクションまたは、Worksheet【ワークシート】オブジェクトを指定します。
  • Before【ビフォア】(必須)
    水平な改ページを挿入したい下側のセル(Rangeオブジェクト)を指定します。

※1シートに挿入できる改ページは1026までです。1行目のセルや最終セル1048576行を超えた行のセルを指定するとエラーになります。


A10セルの上に水平な改ページを設定するコード例

Sub 改ページ3()
ActiveSheet.HPageBreaks.Add Range("A10")
End Sub

VPageBreaks.Addメソッド

垂直な改ページを設定するにはVPageBreaks【ブイページブレークス】コレクションのAdd【アド】メソッドを使用します。VPageBreaksのVはVertical【バーティカル】の略で、垂直という意味があります。VPageBreaks【ブイページブレークス】コレクションはワークシート内のすべての垂直な改ページを表すコレクションでWorksheet【ワークシート】オブジェクトのVPageBreaks【ブイページブレークス】プロパティを使用して取得します。

VPageBreaks.Addメソッドの書式と設定値(引数)の説明

オブジェクト.VPageBreaks.Add( Before )

  • オブジェクト(必須)
    Worksheets【ワークシーツ】コレクションまたは、Worksheet【ワークシート】オブジェクトを指定します。
  • Before【ビフォア】(必須)
    垂直な改ページを挿入したい左側のセル(Rangeオブジェクト)を指定します。
    1列目のセルを設定した場合はエラーになります。

5列目の左に垂直な改ページを設定するコート例

Sub 改ページ4()
ActiveSheet.VPageBreaks.Add Range("E1")
End Sub

ResetAllPageBreaks【リセットオールページブレークス】メソッド

すべての改ページを解除するには、Worksheet【ワークシート】オブジェクトのResetAllPageBreaks【リセットオールページブレークス】メソッドを使用します。

ResetAllPageBreaks【リセットオールページブレークス】メソッドの書式と設定値の説明

オブジェクト.ResetAllPageBreaks


  • オブジェクト(必須)
    Worksheet【ワークシート】オブジェクトを指定します。

アクティブシートの改ページをすべて解除するコート例

Sub 改ページ解除()
ActiveSheet.ResetAllPageBreaks
End Sub

まとめ

改ページを設定する場合は、PageBreak【ページブレーク】 プロパティが便利に使用できると思います。また、新たに改ページを設定する場合は、ResetAllPageBreaks【リセットオールページブレークス】メソッドですべての改ページを解除してから設定することをおすすめします。

PageBreakプロパティとResetAllPageBreaksメソッドを使用したコード例リンク

データ項目の境目に印刷改ページを挿入する


以上で、改ページを設定する方法についての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告