プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (4件)

> 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 をクローズ

この回答への補足

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

補足日時:2007/05/26 22:52
    • good
    • 0

> 今度は15行目の ActiveSheet.Paste でエラーがでます。



クリップボードが空なので貼り付けられないようです。AdobeReader内
の ^{C}(コピー)が効いていないようですね。
こちらの環境は Win98SE、Excel2000 ですが、十数個のファイルで試行
している限りではうまく取得していますのに・・・・・どうしてなのか
わかりません。 (_ _*)

PDFの最終頁にジャンプしてから、[Shift]と[Ctrl]を押しながら[N]を
押したときに、ダイアログに表示されるページ数が黒く反転していれば
コピーされるはずなのですが。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/05/27 21:16

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分くらいでしょう
か。食事時間の前に起動して処理させておくほうがいいかも。

この回答への補足

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

補足日時:2007/05/26 13:49
    • good
    • 0

http://java-house.jp/ml/archive/j-h-b/threads-02 …
http://www.antenna.co.jp/PDF/Viewer/introduce.htm
http://www2s.biglobe.ne.jp/~t-oni/acro/999974331 …
に解決策があります。

質問にOS名、ACROBATバージョン別などが書かれていないため、上記の案内となりました。
3番目の方法が、OSに依存せずかつ無償(かつ、プログラミングを要せずーといっても、sedやgrep程度の知識は必要でしょうが)で出来そうですが、手持ちのPDFファイルで確認しても、その通りにはならないようです。
ご利用の環境で可能か、ご確認下さい。
    • good
    • 0

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

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