電子書籍の厳選無料作品が豊富!

【やりたいこと】
複数のPDFファイルのある数字を自動で検索して、ひとつのExcelファイル(行ごと)に自動入力したいです。
【PDFの検索条件】
ある数字の前には必ず、「豚」という文字が入ります。

A 回答 (2件)

こんにちは



全然わかってませんが・・・

以下のサイトがかなり参考になると思います。
http://pdf-file.nnn2.com/?p=245
http://pdf-dde.nnn2.com/?p=43
ただし、記述にもありますが、VBAやAcrobatのバージョンによって違いがあるようですので、どの組み合わせでも動作するといったものは作成が難しそうです。

ほとんどわかってないので、上記サイトを参考に最抵減のテストをしてみました。
テスト環境は
 windows7 SP1
Excel 14.0 (VBA)
 Adobe Acrobat XI です。

以下で、指定ファイル(PDF)を開き、最初のページのテキストを取得することはできるようですので、悪くしても、テキストから順に探すことはできそうです。
PDFが持っている検索機能を利用することができれば、さらに簡単にできそうな気がします。
しかしながら、取得したテキストは残念ながら日本語部分が文字化けしている状態でしたので(英数部分は正しくとれているようです)、コード変換が必要なのか、あるいは取得前に何らかの設定をしておけば良いのかなどについては調べていないのでわかりません。
(…というか、ここまでで時間切れなので、「不可能ではなさそう」ということのテストと思ってください。)

※ とりあえずのテストなので、エラー等はまったく配慮していません。また、正しいメソッドの使い方か等の検証・確認も行っていません。。
※ 参考サイトにもありますが、気を付けないとPDFを閉じる際にスレッドが残ってしまうことがあるようですので、開いたままで止めています。
※ 参考サイトにはかなりの情報量がありますので、じっくりお読みいただければ、解決の糸口になるのではと思います。(私は一部を斜め読みしただけですので)

<参考テストコード>
Sub test()

Dim rValue As Long
Dim objApp As Object, objDoc As Object
Dim objPage As Object, avPageView As Object
Dim hList As Object, textSelection As Object

Const PDF_FILE = "C:\tmp\test.pdf"

Set objApp = CreateObject("AcroExch.App")
Set avDoc = CreateObject("AcroExch.AVDoc")
Set hList = CreateObject("AcroExch.HiliteList")
objApp.Show

rValue = avDoc.Open(PDF_FILE, "")
rValue = hList.Add(0, 32767)

Set avPageView = avDoc.GetAVPageView()
Set objDoc = avDoc.GetPDDoc()
Set objPage = avPageView.GetPage()
Set textSelection = objPage.CreateWordHilite(hList)
rValue = avDoc.SetTextSelection(textSelection)


Dim i As Long, text As String

text = ""
For i = 0 To textSelection.GetNumText() - 1
 text = text & textSelection.GetText(i)
Next i

MsgBox text

Stop

End Sub
    • good
    • 0

結論から言いますと、それを実行するのはほぼ無理ではないかと思います。



まず、PDF という別のフォーマットから、取り出せるだけのツールがあるかどうかです。
フリーツールでは有名な ReneePDFAid からWordという選択や、OCRでの抜き出しは可能でも、これらがスムーズに取り出しているわけではなさそうです。今、私が、いろいろ試した中では、Goole Document をOCRとして取り出しするのが一番性能が良いようです。むろん、有償でExcel変換というものもあるようですが、Adobe PDF で調べたら、1件で、2,400円では、もう話になりません。

データ埋込み型のPDFもありますが、今度は、PDFの中では表形式でも、表として認識していないということがあります。定形で、順序が決まっているなど条件があってのことです。

「PDF→Excelの自動入力」
「定型フォーム+データ埋め込み型」から抜き出すという裏技はありますが、それはいろんな条件が合わさって可能にするものなのです。そこまでの条件が整うということはまれなのではないかと思います。
    • good
    • 0

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