【初心者OK】エクセルVBAでフォルダ内の全PDFファイルをテキスト化しよう!

エクセルのVBAを使えるようになるといろいろな作業を自動化できたりするのですが会社で
内勤なんかしてるとPDFファイル内のテキストを抽出したり、検索したり、加工したりしたいということがあるかもしれません。

ネットでいろいろ探してみるもすぐに見つかるのは
Adobe Acrobat ReaderではなくAdobe Acrobatが必用な方法はあったのですが、なかなかAdobe Acrobatを持っているケースも少ないものかと思いますし、できることならなんとか無料でやってしまいと思うのが人の性ではないでしょうか・・・

さらにこういう場合、フォルダ内にある全PDFを一括で処理したいというニーズもあるかと思います。

そこで今回は

http://papy.world.coocan.jp/pdftool/

のサイトにあるpdftool.dllを使うことで無料で簡単にエクセルVBAでフォルダ内の全PDFファイルをテキスト化してしまえる方法をご紹介いたします。

細かい注意事項などはコチラを確認→http://www.petitmonte.com/excel/excel_tips_11.html
※こちらで用意しているファイルの中身もこのサイトから引用させていただいております。

設定

①pdftool.dllをダウンロード

まずは

http://papy.world.coocan.jp/pdftool/

のサイトから

をダウンロードします。

pdftool.zip
というファイルがダウンロードされましたら中にある
pdftool.dllというファイルを使用するエクセルファイル(VBAを書いて動作させる)と同じフォルダにいれます。

②pdf2txt.basをダウンロード

それからこちらもダウンロードしてください。

http://hansuke.net/file/pdf2txt.zip

こちらもダウンロードして中を見ると
pdf2txt.bas
というファイルがあります。

次にこのファイルをエクセル内にインポートします。

③pdf2txt.basをエクセルにインポート

エクセルを開いてALT+F11を押す。すると

excel-vba-pdf-text
「Microsoft Visual Basic for Applications」という画面がでてくるかと思います。

そして、「プロジェクト-VBAProject」という画面(標準モジュールとか書かれているもの)が表示されているか確認してください。

もしこの画面がでてないよ!という方は【CTRL+R】で表示させることができます。

標準モジュールというところで右クリックをすると画像のように「ファイルのインポート」というのが表示されます。

excel-vba-pdf-text

そこで先ほどダウンロードしておいた「pdf2txt.bas」のファイルをインポートしてください。

 

そうすると

関数 : PDF2T (“C:\対象.pdf”,”C:\結果.txt”)

の記述でPDFファイルをテキストファイルへと変換することができます。

■全PDFファイルをテキスト化

ちなみにフォルダ内の全PDFファイルをテキスト化したい場合は

http://hansuke.net/file/ALLPDFtoTXT.zip

をダウンロードして先ほどの方法と同じように標準モジュールへインポートします。

動かしてみると、PDFの入っているフォルダを指定することができ元のファイルも残したまま、元のファイル名.txtのファイルが同じフォルダに作成されます。

後は、テキストファイルから特定の文字が入っているか検索してみたり、特定の文字だけ抜き出してみたり等々いろいろな処理が行えると思います。

 

参照設定が必要な場合も!

excel-vba-sansho

もし、エラーが出た場合には参照設定が必要な場合があります。

コチラの方法や必要なものについては

vba-library

このあたりを選択していれば動作するはずです。(いらないものもありそうですが、検証するのが面倒ですみませんw)

もし、わからないこと等ありましたらお気軽にコメントなど頂戴できればと思います!