大量のデータが入力されたExcelシートを印刷すると、意図しない場所で改ページされてしまい、表の途中で切れて見づらくなってしまうことはありませんか? 手作業で一つずつ改ページを設定するのは、データ量が多いと非常に手間がかかります。
VBAを使えば、「〇行ごと」「〇列ごと」といったルールで、改ページを自動的に挿入することが可能です。この記事では、印刷レイアウトをきれいに整えるための、再利用可能なVBAコードを解説します。
完成したVBAコード
以下が、指定した行数・列数の間隔で、シートに手動改ページを自動で設定するVBAコードです。
Sub SetCustomPageBreaks()
'--- 設定箇所 ---
' 改ページを挿入する間隔を定数で指定します
Const ROW_INTERVAL As Long = 20 ' 20行ごとに改ページ
Const COLUMN_INTERVAL As Long = 5 ' 5列ごとに改ページ
'--- 設定ここまで ---
' 変数を宣言します
Dim targetSheet As Worksheet
Dim lastCell As Range
Dim i As Long
' 現在アクティブなシートを操作対象に設定
Set targetSheet = ActiveSheet
' 事前準備と設定
With targetSheet
' 画面の表示モードを「標準」に設定
.Parent.Windows(1).View = xlNormalView
' 1. 既存の改ページをすべてリセット
.Cells.PageBreak = xlNone
' 2. データが入力されている最終セルを取得
' UsedRangeにデータがない場合のエラーを回避
If Application.WorksheetFunction.CountA(.Cells) = 0 Then Exit Sub
Set lastCell = .UsedRange.Cells(.UsedRange.Cells.Count)
' 3. 指定した間隔で「行」の改ページを挿入
For i = ROW_INTERVAL + 1 To lastCell.Row Step ROW_INTERVAL
.Rows(i).PageBreak = xlPageBreakManual
Next i
' 4. 指定した間隔で「列」の改ページを挿入
For i = COLUMN_INTERVAL + 1 To lastCell.Column Step COLUMN_INTERVAL
.Columns(i).PageBreak = xlPageBreakManual
Next i
End With
' 完了メッセージ
MsgBox "改ページの設定が完了しました。「表示」タブの「改ページプレビュー」で確認してください。"
End Sub
コードのポイント解説
① 定数で間隔を指定
Const ROW_INTERVAL As Long = 20
Const COLUMN_INTERVAL As Long = 5
コードの冒頭部分で、改ページを挿入する間隔を行と列でそれぞれ指定しています。この数値を変更するだけで、簡単に間隔をカスタマイズできます。
② 既存の改ページをすべてリセット
.Cells.PageBreak = xlNone
マクロを実行する前に、手動で設定された改ページが残っている可能性があります。最初にシート全体の改ページをxlNoneで一度すべて解除することで、何度マクロを実行しても、必ず同じ結果になるようにしています。これは非常に重要な初期化処理です。
③ データ範囲の最終セルを取得
Set lastCell = .UsedRange.Cells(.UsedRange.Cells.Count)
データがどこまで入力されているかをVBAが自動で判断するために、.UsedRangeプロパティを利用しています。これにより、シート上のデータ範囲の右下のセル(lastCell)を取得し、その行番号と列番号をループ処理の上限として利用しています。
④ ループ処理で改ページを挿入
For i = ROW_INTERVAL + 1 To lastCell.Row Step ROW_INTERVAL
.Rows(i).PageBreak = xlPageBreakManual
Next i
For...Step...という構文のループ処理を使い、指定した間隔(ROW_INTERVAL)でカウンター変数iを増やしながら、改ページを挿入していきます。
.Rows(i).PageBreak = xlPageBreakManual: 指定した行(i行目)の上に、手動改ページを挿入します。.Columns(i).PageBreak = xlPageBreakManual: 指定した列(i列目)の左に、手動改ページを挿入します。
実行結果の確認
このマクロを実行した後、Excelの表示タブにある**「改ページ プレビュー」**をクリックしてみてください。
シート上に、設定した間隔で青い点線(手動改ページ)が引かれているのが確認できます。これにより、印刷した際のページの区切りが意図通りに設定されていることが視覚的に分かります。
まとめ
大量のデータをきれいに印刷するための改ページ設定は、VBAを使えば一瞬で完了します。
- **
xlNone**で既存の改ページをクリアする。 - **
UsedRange**でデータの末尾を把握する。 For...Stepループを使い、一定間隔で**xlPageBreakManual**を設定する。
この手順で、定型的な印刷業務の手間を大幅に削減し、誰が実行しても同じ印刷結果を得られる、標準化された運用が可能になります。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
