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

はじめまして。

エクセルのVBAでPDFのプロパティを見に行くことは可能でしょうか。
PDFであればなんでもよいのですが、
例えば、
http://www.ti.com/lit/wp/slyy063/slyy063.pdf
をダウンロードして開いて、
ファイル⇒プロパティを開くと、
「作成日」と「更新日」をテキストデータで取得したいです。

PDFが更新されたかどうかを自動で判別するVBAを作っている最中ですが、
プロパティ情報でしか更新されたかどうかを判別するのが難しそうで
プロパティで「作成日」と「更新日」を見に行けるものを作ろうと思っております。

ご教授いただければ幸いです。

以上よろしくお願いいたします。

「VBAでPDFの中のプロパティを見に行く」の質問画像

A 回答 (3件)

Excel 本体の方ではなく Visual Basic Editor の「ツール」「参照設定」で「~Acrobat~」みたいなものが有ればリンク先のような方法が取れるかと思います。

お試し下さい。
http://unilab.gbb60166.jp/VBA_PDF/VBA_PDF.htm
    • good
    • 0
この回答へのお礼

アドバイスいただき、誠にありがとうございます。
Acrobat本体がいるとのことで、最終的にAcrobat Readerを毎回立ち上げて、無理やりプロパティを見に行く方法にしました。
非常に処理に時間がかかりますが、背に腹に変えられないので。
アドバイスいただきました、リンク、大変勉強になりました。

お礼日時:2017/01/24 21:00

#2の回答者です。



#2は、完全に間違えました。
作り直して、ご質問のリンク先に限っては、「作成日」と「更新日」は簡単に取れたものの、おそらく、一部のpdf のみで、私が考えたものは汎用性がありません。取得できるのは、XML として備えている pdf ファイルのみです。

調べてみた所、Acrobat (Reader ではない)を持っていないと、どうやら、それを取り出すことが出来ないようにも思えます。もう少し調べてみますが、かなり期待は薄いです。
    • good
    • 0
この回答へのお礼

アドバイスいただき誠にありがとうございます
No.1の方のところにも記載させていただきましたが、結局Acrobat Readerを毎回立ち上げることにしました。
ただ、VBA経由でPDFをダウンロードすると、たまにプロパティが開けないものがあったり、そもそもファイルが破損していたりと、
まだまだデバッグの余地がありそうです・・・
https://www.ka-net.org/blog/?p=2337
こちらのリンクを参考にして最終的につくりあげました。
ひとまず、お金は現時点で書けたくないので、これで行こうとおもいます。
大変助かりました、ありがとうございます。

お礼日時:2017/01/24 21:00

以下を試してみてください。


良かったようないけなかったような、今のところ、確信がありません。


'//
Sub CheckFileDates()
 Dim objFS As Object
 Dim fn As Variant
 Dim objFile As Object
 Set objFS = CreateObject("Scripting.FilesystemObject")
 
 fn = Application.GetOpenFilename("PDFファイル(*.pdf),*.pdf", Title:="ファイル選択")
 If VarType(fn) = vbBoolean Then Exit Sub
 Set objFile = objFS.GetFile(fn)
 
 MsgBox objFile.Name & vbCrLf & _
 "作成日: " & objFile.DateCreated & vbCrLf & _
 "更新日: " & objFile.DateLastModified
 
' Debug.Print objFile.Name; objFile.DateCreated; objFile.DateLastModified
End Sub
    • good
    • 0
この回答へのお礼

アドバイスいただきありがとうございます。
質問しておいて、非常に勝手かとは思いますが、
別の方法で実現しました。
また何かあれば、ご教授いただければ幸いです。

勝手かとは思いますが、今回は最初にアドバイスいただきました、No.1様をベストアンサーとさせていただきました。

お礼日時:2017/01/24 21:02

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

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