VBAから
・PDFファイルのページ数を取得
できます!
前提
正規表現による検索で
・ページ数の部分の個数(=ページ数)
を取得します。
VBAコード
ここでは例として、
・デスクトップ配下のファイル「サンプルPDF.pdf」の
・ページ数を取得
します。
Option Explicit
Sub sample()
Dim pdfFilePath As String
Dim objReg As Object
Dim fileNo As String
Dim tempStr As String
Dim pageCount As Long
'PDFファイルのパスを指定
pdfFilePath = "C:\Users\user\Desktop\サンプルPDF.pdf"
'RegExpオブジェクトの取得
Set objReg = CreateObject("VBscript.RegExp")
'検索パターンを指定 ※ページ数の部分を取得するパターンを指定
objReg.Pattern = "/Type\s*/Page[^s]"
'検索対象として「文字列全体」を指定
objReg.Global = True
'使用可能なファイル番号を取得
fileNo = FreeFile
'PDFファイルをバイナリモードで開く
Open (pdfFilePath) For Binary As #fileNo
'「String型変数の桁数」を「PDFファイルのバイト数」と同じにする ※バイト数分の半角スペースを設定
tempStr = Space(LOF(fileNo))
'PDFファイルの内容を丸ごとString型変数へ設定
Get #fileNo, , tempStr
'PDFファイルを閉じる
Close fileNo
'PDFファイルのページ数を取得 ※ページ数の部分の個数を取得
pageCount = objReg.Execute(tempStr).COUNT
MsgBox ("PDFファイルのページ数は『" & pageCount & "』です!")
'後片づけ
Set objReg = Nothing
End Sub
実行結果
PDFファイルのページ数を取得できました。
参考①
Wordファイルのページ数も取得できます。
詳細は以下の記事をご確認ください。
参考②
Excel(ブック)の内容をPDFファイル(パスワードあり)として出力することもできます。
詳細は以下の記事をご確認ください。
参考③
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●「RegExp」オブジェクト
●OPENステートメント
●LOF関数
●Space関数
●GETステートメント