- ベストアンサー
複数あるPDFファイルのページ数を知りたい
当方は1,000個以上のPDFファイルを所有しています。それぞれのPDFファイルのページ数を知りたいのですが、このページ数を簡単に検索(一括表示)できる無料ツールなどを知っている方は是非、教えてください。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
初めまして。 私も同じようなことをしようと思い、色々探していました。 それで下記のサイトにある「ComPDF」を使ってみたらいかがでしょうか。 シェアウェアですが、ページ数を調べるのでしたら大丈夫でしたよ。 私が調べたアプリの中では精度がかなりいいです。 http://www.ne.jp/asahi/foresth/home/
その他の回答 (6)
- web2525
- ベストアンサー率42% (1219/2850)
一応改良 一部ページ数が0と表示される物もありますが、それは単一ページのはずです 文字数の関係でFunction getFOLDER() As String以下は有りませんがそれは前回の回答から拾ってください Sub PDFページ改良() Const cnsDIR = "\*.pdf" Dim xlAPP As Application Dim strFILENAME As String Dim GYO As Long Dim cCOUNT As Long Dim P As Long Dim strFolder As String Dim PageCOUNT As String Dim c As Object strFolder = getFOLDER() If strFolder = "キャンセル" Then Exit Sub End If strFILENAME = Dir(strFolder & cnsDIR, vbNormal) Do While strFILENAME <> "" P = 0 GYO = GYO + 1 Cells(GYO, 1).Value = strFILENAME Application.ScreenUpdating = False Workbooks.OpenText Filename:=strFolder & "\" & strFILENAME, _ Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _ xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _ Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _ TrailingMinusNumbers:=True Set c = Cells.Find(What:="Count", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, MatchByte:=False, SearchFormat:=False) If Not c Is Nothing Then fAddress = c.Address Do PageCOUNT = c.Value cCOUNT = Left(Mid(PageCOUNT, InStr(PageCOUNT, "/Count") + 7, 99), InStr(Mid(PageCOUNT, InStr(PageCOUNT, "/Count") + 7, 99) & "/", "/") - 1) If P < cCOUNT Then P = cCOUNT End If Set c = Cells.FindNext(c) If c.Address = fAddress Then Exit Do Loop End If ActiveWorkbook.Close SaveChanges:=False Application.ScreenUpdating = True Cells(GYO, 2).Value = P strFILENAME = Dir() Loop End Sub
- web2525
- ベストアンサー率42% (1219/2850)
No3です 作ってからいろいろ試したら、不具合が出てますね しおり形式で作成されたPDFファイルの場合、しおり数が表示されて実際のページ数表示ではなかったり PDFファイルによってはエラーになる場合があるようです 参考程度に留めて置いてください
- web2525
- ベストアンサー率42% (1219/2850)
Sub PDFページ() Const cnsDIR = "\*.pdf" Dim xlAPP As Application Dim strFILENAME As String Dim GYO As Long Dim strFolder As String Dim PageCOUNT As String strFolder = getFOLDER() If strFolder = "キャンセル" Then Exit Sub End If strFILENAME = Dir(strFolder & cnsDIR, vbNormal) Do While strFILENAME <> "" GYO = GYO + 1 Cells(GYO, 1).Value = strFILENAME Application.ScreenUpdating = False Workbooks.OpenText Filename:=strFolder & "\" & strFILENAME, _ Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _ xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _ Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _ TrailingMinusNumbers:=True Cells.Find(What:="COUNT", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, MatchByte:=False, SearchFormat:=False).Activate PageCOUNT = ActiveCell.Value ActiveWorkbook.Close SaveChanges:=False Application.ScreenUpdating = True Cells(GYO, 2).Value = Left(Mid(PageCOUNT, InStr(PageCOUNT, "/Count") + 7, 99), InStr(Mid(PageCOUNT, InStr(PageCOUNT, "/Count") + 7, 99) & "/", "/") - 1) strFILENAME = Dir() Loop End Sub Function getFOLDER() As String Dim objShell As Object Dim objFolder As Object Const strTitle = "フォルダを選択してください。" Set objShell = CreateObject("Shell.Application") Const lngRef = &H1 Const fldRoot = &H0 Set objFolder = _ objShell.BrowseForFolder(0, _ strTitle, lngRef, fldRoot) If objFolder Is Nothing Then getFOLDER = "キャンセル" Else If objFolder.ParentFolder Is Nothing Then getFOLDER = "デスクトップ" Else getFOLDER = objFolder.Items.Item.Path End If End If Set objFolder = Nothing Set objShell = Nothing End Function
- web2525
- ベストアンサー率42% (1219/2850)
No1様の回答は私の環境でも表示されませんでした(Windows7) (7では動作しないのかな?) それはさておき PDFファイルのファイル情報取得ソフトはネット検索すると結構出てきますが、ページ数の取得可能な物は有料のソフトしか発見できませんでした。 http://www.hypergear.com/pcounter/ http://www.gengokk.co.jp/editpdf.htm 結構高価 無料の物で http://homepage3.nifty.com/e-papy/p2.html ただ、ページ数まで取得できるかは良くわかりませんでした 見つからなければ作ってしまえば良い!! と言う事で、エクセルのマクロでページ情報のみ取得する方法 (結構強引にやってるので無駄が多いですが) 文字数制限のため、マクロ自体は別回答で行いますが http://www.ken3.org/vba/vba-folder.html http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_080.html 上記サイトのサンプルと、マクロの記録の組み合わせで 指定したフォルダー内のPDFファイル名とページ数のみを表示するマクロになっています
- enunokokoro
- ベストアンサー率74% (3543/4732)
No.1の回答者です。補足を見ました。 > なぜかページ数項目は全て空白(非表示)になってます・・・ 読み込みに時間がかかっているだけでは? エクスプローラーを開いたまま、ある程度時間をおいてみては。 ページ数を読み込むのにある程度処理時間が必要なようなので。 ファイルを右クリックして表示されるメニューから[プロパティ]を 指定して開く[プロパティ]ダイアログの[全般]タブにある情報は、 読み込みが早くできるようになってて処理が瞬時になっているので 開くとすぐ表示されるのですが、他のタブにある項目などは一つの ファイルごとに探して読み込むらしく、かなりの処理時間が必要な ようですので。エクスプローラーで表示される[全般]タブ以外のは ファイル数が多いために、処理時間がかなりかかっているのかも。 それでも表示されないとしたら、私には原因がわかりません。 もしかしたら関連付けされたアプリケーションの関係なのかも。 そうだとするなら、Adobe Readerに変更してみるとか?
- enunokokoro
- ベストアンサー率74% (3543/4732)
Windowsなら[エクスプローラー]の[表示]を[詳細]にして、 [詳細表示の設定]で[ページ数]にチェックを付けておけば、 簡単にみることができますが。この方法では駄目なの? http://www.atmarkit.co.jp/fwin2k/win2ktips/584ecustmize/ecustmize.html ツールなど使用しなくてもすむ方法なので、試してみては。
補足
ありがとうございます!無事にページ数の欄を表示させることができましたが、なぜかページ数項目は全て空白(非表示)になってます・・・。(実際の数字部分)何が原因なのでしょうか?