ExcelVBA ページ数取得でExcelシートデータが印刷時に何ページか知る

 

ExcelVBA ページ数取得とは、Excelシート内のデータが印刷時に何ページ分に分割されるかを取得する機能です。これを利用すると、印刷結果を確認したり、ページ数に応じた処理を自動化したりできます。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

日常業務でExcelを多用し、手動作業を減らしたいと考えている方へ
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事

 

Excel VBA 印刷時のページ数取得シーン

以下のようなシーンで利用で表示します。

1.印刷前の確認
印刷時のページ数を事前に把握し、調整する。

2.動的処理
ページ数に応じてレポートを分割・保存する。

3.エラーチェック
ページ数が意図した範囲内かどうかを確認する。

使い方

シート.PageSetupは、シートの印刷設定を行います。Pages.Countは、印刷範囲内の総ページ数を取得します。

ポイント

1.表示倍率や印刷設定の影響
ページ数は PageSetup の設定(印刷範囲、縮尺、余白など)に依存します。

2.動作が遅くなる場合がある
大量のデータがある場合、ページ数取得に時間がかかることがあります。

3.シートの印刷範囲を確認
設定されている PrintArea に基づいてページ数が決まるため、正しい範囲が設定されているか確認してください。

 

Excel VBA  印刷時のページ数取得のサンプルコード

基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

シートのページ数を取得

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

印刷設定を変更してページ数を再計算

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で自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。