
ExcelVBA ページ数取得とは、Excelシート内のデータが印刷時に何ページ分に分割されるかを取得する機能です。これを利用すると、印刷結果を確認したり、ページ数に応じた処理を自動化したりできます。使い方や注意点など、サンプルコードをもとに具体的に解説します。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
Excel VBA 印刷時のページ数取得シーン
以下のようなシーンで利用で表示します。
1.印刷前の確認
印刷時のページ数を事前に把握し、調整する。
2.動的処理
ページ数に応じてレポートを分割・保存する。
3.エラーチェック
ページ数が意図した範囲内かどうかを確認する。
Excel VBA 印刷時のページ数取得|使い方とポイント
シート.PageSetupは、シートの印刷設定を行います。Pages.Countは、印刷範囲内の総ページ数を取得します。
1.表示倍率や印刷設定の影響
ページ数は PageSetup の設定(印刷範囲、縮尺、余白など)に依存します。
2.動作が遅くなる場合がある
大量のデータがある場合、ページ数取得に時間がかかることがあります。
3.シートの印刷範囲を確認
設定されている PrintArea に基づいてページ数が決まるため、正しい範囲が設定されているか確認してください。
Excel VBA 印刷時のページ数取得のサンプルコード
Option Explicit
Sub GetPageCount()
Dim ws As Worksheet
Dim pageCount As Integer
' 対象シートを指定
Set ws = ThisWorkbook.Sheets("Sheet1")
' ページ数を取得
pageCount = ws.PageSetup.Pages.Count
MsgBox "Sheet1のページ数は " & pageCount & " ページです。"
End Sub
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
印刷設定を変更してページ数を再計算
Option Explicit
Sub GetPageCountAfterSetting()
Dim ws As Worksheet
Dim pageCount As Integer
' 対象シートを指定
Set ws = ThisWorkbook.Sheets("Sheet1")
' 印刷設定を変更
With ws.PageSetup
.Orientation = xlLandscape ' 横向き
.Zoom = False
.FitToPagesWide = 1 ' 横1ページに収める
.FitToPagesTall = False ' 縦方向は制限しない
End With
' ページ数を取得
pageCount = ws.PageSetup.Pages.Count
MsgBox "設定変更後、Sheet1のページ数は " & pageCount & " ページです。"
End Sub
すべてのシートのページ数を取得
Option Explicit
Sub GetPageCountForAllSheets()
Dim ws As Worksheet
Dim pageCount As Integer
Dim result As String
result = "各シートのページ数:" & vbCrLf
For Each ws In ThisWorkbook.Sheets
pageCount = ws.PageSetup.Pages.Count
result = result & ws.Name & ": " & pageCount & " ページ" & vbCrLf
Next ws
MsgBox result
End Sub
ExcelVBAの「ページ数取得」を活用すると、印刷結果の事前確認や動的な処理が可能になります。`シート.PageSetup.Pages.Count を使用することで、ページ数を簡単に取得できますが、正確な印刷設定を整えることが重要です。
「Excel VBAで自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。