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


いつもありがとうございます!
皆さん、こんにちは。ご覧いただきありがとうございます。
“日々の業務にちょうどいい自動化を”──
業務改善アプリケーションの開発を行っている ソフトデザイン工房 です。
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で自在にWordを処理することができます。
△ ChatGPT
PDF をまるごと ChatGPT に入力し、何らかの処理を行わせたうえで PDF として出力することもできます。
これは実現すれば非常に便利ですが、ChatGPT であってもレイアウトが複雑な場合には、元の構造を保持するのが難しいです。(少なくとも現状では難しい)
ただし、プロンプトの設計次第では、要望に近い形式で出力できる可能性はあります。

以上で解説は終了です。ありがとうございます。
VBAスキルアップの参考情報
近年は、ChatGPTをはじめとするAIの登場によって、学習のスタイルが大きく変わりました。
分からないことがあれば、AIに尋ねれば答えがすぐに見つかる時代です。
とはいえ、AIを使いこなすには、自分自身の基本的な知識や理解力が欠かせません。
全体像をつかむためには、やはり書籍などで体系的に学んでおくことが今でも有効です。
そのうえでAIを活用すれば、自分の理解度に合わせた的確な解説や、応用のヒントを得ることができます。
「学んで基礎を築く → AIで補い発展させる」──このサイクルを重ねることで、VBAスキルは着実に高まっていくでしょう。
VBAのスキルアップ
VBAを学び始めるなら
入門書は、どれを選んでも大きな差はないように感じます。
どれを選ぶかに悩むことに時間をかけるよりも、まずは手頃な一冊を手に取って進めてみるのがおすすめです。
もし迷ったときには、私はインプレス社の「いちばんやさしい」シリーズを選ぶことが多いです。
基礎を超えて力をつけたいなら
私は上級者を目指していましたので、入門書にとどまらず、このような内容の濃い一冊を選んで学んでいました。
今は誰でもAIを活用できる時代になりましたが、上級者を目指す方にとっては、AIをより上手に活用するという意味でも、こうした本は今なお価値があります。
このレベルの本を一冊持っておくことに、損はないでしょう。
資格で能力を証明したいなら
VBAのプログラミング能力を客観的に示したい場合には「VBAエキスパート試験」があります。
特に「スタンダード」の方は上級者向けです。
あなたが社内業務の改善を行う立場であっても、VBAで作成したシステムをお客様に納める立場であっても、この資格は信頼や安心につながるでしょう。
以下の公式テキストが販売されています。
プログラミングの一般教養
「独学プログラマー」というプログラミングの魅力を解説した書籍があります。
これはVBAではなくPythonを題材としていますが、プログラミングの基本的な知識や思考法、仕事の進め方まで幅広く学べます。
今はAIにコードを尋ねれば、答えが返ってくる時代です。
しかし、この本からは「コード」以上に、プログラミングに向き合う姿勢や考え方を学ぶことができるでしょう。
こちらの記事でも紹介しています。もしよろしければご覧ください。
【初心者歓迎】無料相談受付中

いつもありがとうございます!
限られた時間をより良く使い、日本の生産性を高めたい──
みんなの実用学を運営するソフトデザイン工房では、業務整理や業務改善アプリケーション作成のご相談を承っております。
お気軽にご相談ください。
こちらの記事でも紹介しております。
おわりに


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