一回も披露したことのない豆知識

当方は1,000個以上のPDFファイルを所有しています。それぞれのPDFファイルのページ数を知りたいのですが、このページ数を簡単に検索(一括表示)できる無料ツールなどを知っている方は是非、教えてください。

A 回答 (7件)

初めまして。


私も同じようなことをしようと思い、色々探していました。

それで下記のサイトにある「ComPDF」を使ってみたらいかがでしょうか。
シェアウェアですが、ページ数を調べるのでしたら大丈夫でしたよ。
私が調べたアプリの中では精度がかなりいいです。

http://www.ne.jp/asahi/foresth/home/
    • good
    • 1

一応改良


一部ページ数が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
    • good
    • 6

No3です


作ってからいろいろ試したら、不具合が出てますね

しおり形式で作成されたPDFファイルの場合、しおり数が表示されて実際のページ数表示ではなかったり
PDFファイルによってはエラーになる場合があるようです

参考程度に留めて置いてください
    • good
    • 0

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
    • good
    • 0

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/sub0 …

上記サイトのサンプルと、マクロの記録の組み合わせで
指定したフォルダー内のPDFファイル名とページ数のみを表示するマクロになっています
    • good
    • 2

No.1の回答者です。

補足を見ました。

> なぜかページ数項目は全て空白(非表示)になってます・・・
読み込みに時間がかかっているだけでは?
エクスプローラーを開いたまま、ある程度時間をおいてみては。
ページ数を読み込むのにある程度処理時間が必要なようなので。

ファイルを右クリックして表示されるメニューから[プロパティ]を
指定して開く[プロパティ]ダイアログの[全般]タブにある情報は、
読み込みが早くできるようになってて処理が瞬時になっているので
開くとすぐ表示されるのですが、他のタブにある項目などは一つの
ファイルごとに探して読み込むらしく、かなりの処理時間が必要な
ようですので。エクスプローラーで表示される[全般]タブ以外のは
ファイル数が多いために、処理時間がかなりかかっているのかも。

それでも表示されないとしたら、私には原因がわかりません。
もしかしたら関連付けされたアプリケーションの関係なのかも。
そうだとするなら、Adobe Readerに変更してみるとか?
    • good
    • 1

Windowsなら[エクスプローラー]の[表示]を[詳細]にして、


[詳細表示の設定]で[ページ数]にチェックを付けておけば、
簡単にみることができますが。この方法では駄目なの?
http://www.atmarkit.co.jp/fwin2k/win2ktips/584ec …

ツールなど使用しなくてもすむ方法なので、試してみては。
「複数あるPDFファイルのページ数を知りた」の回答画像1

この回答への補足

ありがとうございます!無事にページ数の欄を表示させることができましたが、なぜかページ数項目は全て空白(非表示)になってます・・・。(実際の数字部分)何が原因なのでしょうか?

補足日時:2011/04/19 23:38
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報