初めて自分の家と他人の家が違う、と意識した時

色々やってみたのですがうまくいかないので質問させてください。
エクセルで直接pdfのテキストを表示させるスマートな方法はありませんでしょうか?
エクセルで編集するために元データのpdfファイルのテキストを取り込みたいのです。

Sub test()
Dim strFilePath As String
strFilePath = Application.GetOpenFilename _
("PDFファイル,*.pdf", MultiSelect:=False)

Call Shell("explorer.exe " & strFilePath)

 Application.Wait Time:=Now + TimeValue("00:00:05")
 Application.SendKeys "^a"
 Application.Wait Time:=Now + TimeValue("00:00:03")
 Workbooks(1).Activate
 Application.SendKeys "^c"

End Sub
まったく動かないのですが今はこんな感じになっています。

A 回答 (3件)

#2です。

試しにやってみました。デスクトップに、filtdump.exeと、目的のpdfファイルを置いて、chdirして実行するという能のないものですが、ご参考まで。なお、Readerのバージョンは6(古い!),WindowsXP,XL2000です。Adobeの、バージョン6用のiFilterをインストールしています。
Sub test()
Dim oShell As Object, FSO As Object
Dim buff As String
Dim i As Long

Set oShell = CreateObject("WScript.Shell")
ChDir "C:\Documents and Settings\??????\デスクトップ"
oShell.Run "filtdump -b -o test.txt hoge.pdf", 7, True
Set oShell = Nothing

Set FSO = CreateObject("Scripting.FileSystemObject")
i = 1
With FSO.OpenTextFile("test.txt", , , -1)
Do While Not .AtEndOfStream
buff = .readLine
Cells(i, 1).Value = buff
i = i + 1
Loop
.Close
End With
Set FSO = Nothing
End Sub
    • good
    • 0

PDFからのテキスト抽出は、Acroat(Readerでは無い)をお持ちなら、こちらをご覧下さい。


http://pdf-file.jugem.jp/?eid=114

無料で済ませるなら、こちらをご覧下さい。ifilterという仕組みがあるそうです。
http://gihyo.jp/dev/serial/01/make-findspot/0016
ここで言及している、filtdump.exeは無償でダウンロードできる、Microsoftの開発ツールに付属しており、そのままコピーすれば別のPCでも使用できます。

Acrobat(Reader)V6用のifilterはこちらでダウンロードできます。
http://www.adobe.com/jp/support/downloads/pdfi_2 …
より、新しいバージョン向けは、Readerにもバンドルされている様です。
試しにやってみると、Unicodeの改行のないテキストファイルを生成してくれました。(ファイル名の打ち間違いがあってもエラーが出ず、空ファイルを生成してくれます)
C:\filtdump -b -o test.txt hoge.pdf
これをVBAから実行して、生成されるテキストファイルを取り扱えば良いと思います。
    • good
    • 0

>スマートな方法はありませんでしょうか?



一連の仕事のためにどれだけの準備が出来るかによりますが,スマートな方法は例えば下記の参考リンクと,当該のサイト全体をよく勉強して行ってみてください。

参考URL:http://pdf-file.jugem.jp/?cid=11
    • good
    • 0

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


おすすめ情報