【簡単エクセル/Excel VBA マクロ】複雑なPDF内のテキストを自動で抽出・処理するベストプラクティス|ワンポイントテクニック #016



いつもありがとうございます!
ノンプログラマー向け「Excel VBA マクロ ワンポイントテクニック解説シリーズ」へようこそ。
本稿では「複雑なPDFの内テキストを自動で抽出・処理するベストプラクティス」をお届けします。
PDF内のテキストを抽出する方法には、WordやGoogleドキュメントでPDFファイルを開く方法や、Pythonと専用のライブラリを組み合わせて処理する方法などがあります。
ただし、こうした一般的な方法では、たとえば確定申告書のような複雑なレイアウトを持つPDFファイルには対応しきれません。レイアウトが崩れてしまい、必要な情報を正確に取り出すことが難しくなるのです。
そこで本稿では、こうした課題を踏まえたうえで、複雑なレイアウトを保ったままPDFから正確にテキストを抽出し、処理する方法について解説していきます。
本稿が、あなたのVBAマクロの価値をさらに高める一助となれば幸いです。VBAを活用して、自分自身や身近なコミュニティに合ったアプリケーションを作成し、仕事量は半分に、成果は2倍にしていきましょう!成果を増やす!是非ご覧ください。
結論「Acrobat x Word」+ 「VBA」がベスト

複雑な PDF 内テキストを自動で抽出・処理するには、「Acrobat × Word」+「VBA」の組み合わせがベストです。
つまり、「Acrobat」で PDF を Word 形式に変換し、その後「VBA」で処理します。
一旦 Word 形式まで変換できてしまえば、その後は VBA で自在に処理できます。
「複雑なPDF内のテキストを自動で抽出・処理する方法」検討結果

❌ Python x pdfplumber or PyMuPDF
Python(パイソン)は、人気のプログラミング言語で、PDFからテキストを取り出す操作も可能。pdfplumber
や PyMuPDF
は、PDFファイルからテキストや図などを抽出するためのPythonのライブラリ(部品)のこと。
この方法では、テキストは抽出できるが、「見た目のレイアウト」に意味がある複雑な構造のPDFでは、抽出したテキストがバラバラになってしまう。つまり、意味のあるまとまりとしてテキストを保持することが難しい。
❌ Word or Google ドキュメント
Word と Google ドキュメントは、PDFを自身のファイル形式で開くことができる。しかし、PDFの構造が複雑である場合、レイアウトを保持することができない。
❌ Acrobat × Excel
有料だが、Adobe Acrobat を使えば、PDFを他のファイル形式でエクスポートできる。しかし、Exce形式でエクスポートする場合は、セル構造の制約により、複雑レイアウトを正確に再現するのは難しい。
⭕ Acrobat × Word
同じく Adobe Acrobat を使った方法。Word形式でエクスポートする場合、PDFのレイアウトが極端に複雑でない場合、元のレイアウトを比較的正確に保持できる。ここまで変換できれば、あとはVBAで自在に処理できる。
△ ChatGPT
PDF をまるごと ChatGPT に入力し、何らかの処理を行わせたうえで PDF として出力する方法。実現すれば非常に便利だが、ChatGPT であってもレイアウトが複雑な場合は、元の構造を保持するのは難しい。ただし、プロンプトの設計次第では、要望に近い形式で出力できる可能性あり。

以上で解説は終了です!ありがとうございます!
VBAプログラミングスキルアップのための参考情報
ここでは参考図書を紹介いたしますが、これらに限らず自分に合うものを選ぶことが重要だと考えております。皆様の、より一層のご成功を心よりお祈りしております。
VBAプログラミングのスキルアップ
学習用としてもハンドブックとしても役立つ便利な書籍がこちらです。価格はやや高めですが、その内容は非常に充実しています。相応のスキルを身に付けるためには、こうしたしっかりとした書籍を一冊持っておくと良いでしょう。
入門書に関しては、どの書籍も大きな違いはありません。あまり迷うことに時間をかけるよりは、手頃なものを一冊選んでみると良いでしょう。VBAの入門書は数多く出版されていますので、興味がある方はぜひチェックしてみてください。
甲乙つけがたい場合、私はインプレス社の「いちばんやさしい」シリーズを選ぶことが多いです。
\チェックしてみよう/
\チェックしてみよう/
\チェックしてみよう/
VBAのプログラミング能力を客観的に証明したい場合には「VBAエキスパート試験」があります。この試験はVBAの知識を公式に認定するものです。VBAの総合的な能力獲得を目指す方に適しています。以下の公式テキストが販売されております。
プログラミングの一般教養
「独学プログラマー」というプログラミングの魅力を解説した書籍があります。これはVBAではなくPythonを題材としていますが、プログラミングの基本的な知識や思考法、仕事の進め方まで幅広く学べます。
こちらの記事でも紹介しております。もしよろしければご覧ください。

【初心者歓迎】【無料相談受付中】業務支援アプリケーション作成のご相談を承ります

いつもありがとうございます!
限られた時間をより良く使い、日本の生産性を高めたい──
この取り組みが、社会全体の課題を解決する一歩になると信じています。
みんなの実用学を運営するソフトデザイン工房では、業務設計と業務支援アプリケーション作成のご相談を承っております。
初心者歓迎。無料相談受付中。気になる方は、お気軽にご相談ください。
こちらの記事でも紹介しておりますので、もしよろしければ、ご覧ください。
【初心者歓迎】【無料相談受付中】業務支援アプリケーション作成のご相談を承ります

いつもありがとうございます!
限られた時間をより良く使い、日本の生産性を高めたい──
この取り組みが、社会全体の課題を解決する一歩になると信じています。
みんなの実用学を運営するソフトデザイン工房では、業務設計と業務支援アプリケーション作成のご相談を承っております。
初心者歓迎。無料相談受付中。気になる方は、お気軽にご相談ください。
こちらの記事でも紹介しておりますので、もしよろしければ、ご覧ください。
おわりに


ご覧いただきありがとうございました!
今回の記事では、「複雑なPDF内のテキストを自動で抽出・処理するベストプラクティス」をお届けいたしました。
お問い合わせやご要望等ございましたら、「お問い合わせ/ご要望」またはコメントにて、ご連絡いただければ幸いでございます。
皆様の人生がより一層素晴らしいものになるよう、少しでもお役に立てれば幸いでございます。
なお、当サイトでは様々な情報を発信しております。もしよろしければ、トップページもご覧いただけると幸いでございます。
この記事を書いた人
- ■人生を追求する凡人 ■日本一安全で、気の向くままに自分の時間を過ごせる、こだわりのキャンプ場を作るのが夢 ■ソフトデザイン工房代表(個人事業者) - 業務設計&業務支援アプリケーション作成サービスを展開 ■人生は時間そのもの。ひとりでも多くの人が「より良い人生にするために時間を使って欲しい」と願い、仕事のスキルの向上、余暇の充実、資産形成を研究。