• ベストアンサー

PDFのページ数を調べたい

お世話になります。 1,500件くらいのPDFファイルがあります。各ファイルのページ数はバラバラです。全てのPDFファイルのページ数を調べてエクセルで一覧表にするのですがファイルを開かずにページ数を取得する方法はないでしょうか? Acrobat5.0及び6.0あります。 その他フリーソフトでできればOKです。 アドバイスおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

> AppActivate "Adobe Reader"が黄色くなっています。 > 1枚目のPDFファイルは開き、そのファイル名もB1セルに書き込まれま > すがそこで止まる状況です。 最初のファイルのページ数が書き込まれていないのは、おそらくアクテ ィブ化しようとしているプログラムの名前が "Adobe Reader" ではない のでウィンドウを取得できていないのでしょう。 AdobeReader8.0を単独で開いたとき、そのタイトルバーの左端にある アイコンの右側に表示されているプログラム名は何でしょうか? 私のバージョン(6)では、Adobe Reader と表記されていますので、  AppActivate "Adobe Reader" で有効なのですが。 異なっている場合は、実際の文字列に書き換えてみてください。 > ショートカットキー押下の組み合わせとのことですが、 "^{END}+^{N}^{C}~%(FC)" と "%(FX)" の先頭からの順番です。  ^{END}: [Ctrl]を押しながら[END] → 最終頁にジャンプ  +^{N}: [Shift]と[Ctrl]を押しながら[N] → 頁指定ダイアログ表示  ^{C}: [Ctrl]を押しながら[C] → ダイアログ内現頁の数値をコピー  ~: [Enter] → ダイアログの[OK]をクリックと同じ意  %(FC): [Alt]を押し続けながら[F][C] → ファイルをクローズ  "%(FX)": [Alt]を押し続けながら[F][X] → Adobe Reader をクローズ

HGK
質問者

補足

ご回答ありがとうございます。 先ほどの質問はあらかじめ空のアクロバットを開いておくことで解決したみたいですが、今度は15行目の ActiveSheet.Paste でエラーがでます。 実行時エラー '1004' Worksheetクラスのpasteメソッドが失敗しました と出ます。 うまくコピーできてない感じです。 ちなみに何かコピーしてクリップボードに入れておくときちんと動作するときもあります。C列はすべてそのコピーした言葉が入ってしまいますが…。 アドバイスお願いします。

その他の回答 (3)

回答No.4

> 今度は15行目の ActiveSheet.Paste でエラーがでます。 クリップボードが空なので貼り付けられないようです。AdobeReader内 の ^{C}(コピー)が効いていないようですね。 こちらの環境は Win98SE、Excel2000 ですが、十数個のファイルで試行 している限りではうまく取得していますのに・・・・・どうしてなのか わかりません。 (_ _*) PDFの最終頁にジャンプしてから、[Shift]と[Ctrl]を押しながら[N]を 押したときに、ダイアログに表示されるページ数が黒く反転していれば コピーされるはずなのですが。

HGK
質問者

お礼

ご回答ありがとうございます。エラー原因を探るためアドビリーダー6.0をインストールして試したところ問題なく動作しました。8.0で出来なかった原因は当方で調べてみます。色々とありがとうございました。

回答No.2

AcrobatReader(AdobeReader) を使用する前提ですが、Excelで簡単なマ クロを試作してみました。――といっても、ショートカットキー押下の組み 合わせですが・・・ (^^ゞ ページ数を取得するために結局ファイルは開閉するのですが、手作業よ りは早いと思います。 1.Excelを開いて、セルA1にPDFファイルが入っているフォルダ名を入  力します。( 例:C:\MyFiles\MyDocu\Pdf ) 2.以下を標準モジュールにコピペし、※印の部分を実際のAdobeReader  のフルパスに書き換えます。  '  Sub CountPdfPage()   Dim RdrPath As String, FPath As String, TgtFile As String   Dim i As Integer   RdrPath = "C:\Adobe\Acrobat\Reader\AcroRd32.exe" '※   FPath = Range("A1").Value & "\"   TgtFile = Dir$(FPath & "*.pdf")   Do While TgtFile <> ""    i = i + 1    Cells(i, 2).Value = TgtFile    Shell RdrPath & " " & FPath & TgtFile, 3    AppActivate "Adobe Reader"    SendKeys "^{END}+^{N}^{C}~%(FC)", True    AppActivate "Microsoft Excel"    Cells(i, 3).Select    ActiveSheet.Paste    TgtFile = Dir$   Loop   AppActivate "Adobe Reader"   SendKeys "%(FX)", True  End Sub  ' 3.クリップボードツールバーでクリップボードを空にしてからマクロ  を実行します。      ↓ セルB1以下、B列にファイル名、C列にページ数が順次書き込まれ ていきます。・・・のはずです。 でも1,500件ですので、時間はかかるでしょうね。30分くらいでしょう か。食事時間の前に起動して処理させておくほうがいいかも。

HGK
質問者

補足

ご回答ありがとうございます。 試したところ 実行時エラー'5' プロージャの呼び出し、または引数が不正です と出ます。 デバックすると11行目のAppActivate "Adobe Reader"が黄色くなっています。 1枚目のPDFファイルは開き、そのファイル名もB1セルに書き込まれますがそこで止まる状況です。 当方AdobeReader8.0使用。 またショートカットキー押下の組み合わせとのことですが、実際どういう操作をしているかも教えてください。ENDキーを押しているのはなんとなくわかるのですが…。 アドバイスお願いします。

  • vaio09
  • ベストアンサー率37% (756/2018)
回答No.1

http://java-house.jp/ml/archive/j-h-b/threads-029000.html#029058 http://www.antenna.co.jp/PDF/Viewer/introduce.htm http://www2s.biglobe.ne.jp/~t-oni/acro/999974331193702.html に解決策があります。 質問にOS名、ACROBATバージョン別などが書かれていないため、上記の案内となりました。 3番目の方法が、OSに依存せずかつ無償(かつ、プログラミングを要せずーといっても、sedやgrep程度の知識は必要でしょうが)で出来そうですが、手持ちのPDFファイルで確認しても、その通りにはならないようです。 ご利用の環境で可能か、ご確認下さい。

関連するQ&A