Excel VBA 印刷される総ページ数を取得するPages.Countプロパティ

スポンサーリンク
スポンサーリンク

印刷される総ページ数を取得する方法

印刷される総ページ数を取得するには
Pages【ページズ】コレクション
Count【カウント】プロパティを使用します。
Pages【ページズ】コレクションは
印刷されるすべてのページを表すコレクションで
PageSetUp【ページセットアップ】オブジェクト
Pages【ページズ】プロパティで参照します。
PageSetUp【ページセットアップ】オブジェクトを取得するには
WorksheetオブジェクトやChartオブジェクトの
PageSetUp 【ページセットアップ】プロパティを
使用して取得します。

PageSetUp 【ページセットアップ】プロパティ

PageSetUp【ページセットアップ】オブジェクトを取得するには
PageSetUp 【ページセットアップ】プロパティを使用します。

PageSetUp 【ページセットアップ】プロパティの書式

オブジェクト.PageSetUp


設定値の説明

  • オブジェクト(必須)
    Worksheetオブジェクトまたは、Chartオブジェクトを指定します。
    ※Workbookオブジェクトを指定するとエラーになります。

Pages.Count【ページズカウント】プロパティ

Pages.Count【ページズカウント】プロパティの書式

オブジェクト.Pages.Count
【戻り値】長整数型 (Long) の値


設定値の説明

  • オブジェクト(必須)
    PageSetUpオブジェクトを指定します。

※値の取得のみ可能です。


アクティブシートの印刷される総ページ数を取得してメッセージで表示するコード例

Sub シート印刷枚数()
MsgBox "印刷ページは" & ActiveSheet.PageSetup.Pages.Count & " ページです。"
End Sub

ブック全体の印刷総ページ数を取得する方法

WorkbookオブジェクトはPagesetUpオブジェクトを参照できないため
ブック全体の印刷総ページ数を取得するには
個別のワークシートの総ページ数を取得して
その数を合算して算出します。

ブック内の印刷される総ページを取得してメッセージで表示するコード例

Sub ブック印刷枚数()
Dim ページ As Long
Dim シート As Worksheet
ページ = 0
For Each シート In ActiveWorkbook.Worksheets
ページ = ページ + シート.PageSetup.Pages.Count
Next
MsgBox "印刷ページは" & ページ & "ページです。"
End Sub

コードの解説

2行目
【Dim ページ As Long】

印刷ページ数を格納する変数「ページ」を
長整数型で宣言します。


3行目
【Dim シート As Worksheet】

ブック内のシートを格納する変数「シート」を
オブジェクト型で宣言します。


4行目
【ページ = 0】

変数「ページ」に0を代入します。


5行目
【For Each シート In ActiveWorkbook.Worksheets】

For Each【フォアイーチ】ステートメントでオブジェクト変数の「シート」に
ブック内のワークシートを繰り返し処理の中で順に代入します。


6行目
【ページ = ページ + シート.PageSetup.Pages.Count】

繰り返し処理の中で順にブック内のシートが代入された
変数「シート」に格納されたシートに対して
Pages【ページズ】コレクションのCountプロパティで
印刷ページ数を取得して変数「ページ」に代入します。
繰り返しの2回目からは前回取得したページ数を今回取得した
ページ数に加算して変数「ページ」に代入することで
ブック内のすべての印刷ページ数を変数「ページ」に格納します。


8行目
【MsgBox “印刷ページは” & ページ & “ページです。”】

MsgBox関数を使用してページ数を表示します。


以上で
印刷される総ページ数を取得するPages.Countプロパティに
ついての解説を終了します。
ありがとうございました。

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク