PDFから「請求書番号」を探し出せ!①|Power Automate for desktop
対象者:PADを使ってPDFから必要な文字を抽出してみたい方
前提環境:Power Automate for desktop(無料版)
読了時間:約2分
作業時間の目安:約4分
はじめに

今日はPower Automate for desktop(PAD)を使って、PDFから文字を抽出する方法を紹介します。
請求書や申込書などのPDFから情報を取得したい場面は多くあります。最近はCopilotを利用する方法もありますが、PADだけでも文字の抽出は可能です。
今回は全3回のうち第1回です。
第1回・第2回ではPower Automate for desktopを使った文字抽出を紹介し、第3回ではCopilotを使った文字抽出との比較を行います。
第1回となる今回は、PDFから文字を抽出する基本フローを作成してみましょう。
事前準備
初めてPower Automate for desktopを操作される方は、事前に基本操作ガイドをご確認ください。
本稿では、フローの作成方法やアクションの追加方法などの基本操作を理解していることを前提に進めます。
実習で利用するファイルをダウンロードする
実習では請求書のPDFを使用します。以下からダウンロードしてください。
使用するファイルは、下記画像のような請求書です。今回は赤枠で囲まれた部分の文字を抽出していきます。

実習
今回は次の流れで進めます。

1. PDFから全文を抽出する
アクション名: PDF からテキストを抽出

💡このアクションでは、PDFの中の「文字」を取り出します。
設定する内容:
PDF ファイル: 青いファイルのアイコンをクリックしダウンロードした請求書_Excel.pdfのファイルを選択
抽出するページ: すべて
生成された変数: ExtractedPDFText
2. 抽出したテキストを確認する
下記赤枠フローの「実行」ボタンをクリックし、内容が読み取れるか確認してみましょう。
すると、左側の変数%ExtractedPDFText%に実行した後の結果が出力されます。変数をダブルクリックを押して内容を確認してみましょう。


実行結果を見ての通り、PDFはExcelのようにセル単位でデータを抽出できません。Copilotのように文脈を理解することはないのです。
そのため、このテキストからどこを取得するのかを整理し、抽出設定を行います。
3. 文字列を切り抜いて請求書番号を取り出す
アクション名: テキストを切り抜く


💡このアクションは、全文の中から特定の範囲だけを取り出します。
今回は、請求書番号: と 請求日: の間にある文字を取り出して、請求書番号を抜き出す流れです。
設定内容
元のテキスト:%ExtractedPDFText%
モード:指定された2つのフラグ間のテキストを取得
開始フラグ:請求書番号:
終了フラグ:請求日:
生成変数:クリックすると変更できる>CroppedText → 「請求書番号」に変更
IsFlagFound:未使用のためOFF
※フラグはPDF内の表記と完全一致させる必要があります。
4. 正規表現で請求日を探す
アクション名: テキストの解析

💡このアクションでは、全文の中から「請求日」という形の文字列を正規表現で探します。
日付の形式が毎回少し変わる場合でも、正規表現を使うと柔軟に拾いやすくなります。
設定する内容:
解析するテキスト: %ExtractedPDFText%
検索するテキスト: 請求日[::]\s*(\d{4}年\d{1,2}月\d{1,2}日)
正規表現である: オン
最初の出現箇所のみ: オン
生成された変数をクリックし変数欄を表示
position:利用しないのでOFF
生成された変数: Match
正規表現ってなんだろう?

💡「請求日[::]\s*(\d{4}年\d{1,2}月\d{1,2}日)」は正規表現です。
正規表現とは、文字の並び方のルールを指定して、目的の文字を探すための書き方です。
つまり、「日付」という意味を理解しているのではなく、
👉 “日付っぽい文字の並び方”を指定して拾っている というイメージです。
今回、検索するテキストにはこの正規表現を使用しています。
[::]:全角と半角のコロン両方に対応
\s*:スペースがあってもなくてもOK
(\d{4}年\d{1,2}月\d{1,2}日):2026年6月1日のような日付を取得
といった仕組みです。
このような正規表現は、日付だけでなく、メールアドレスや電話番号などの抽出にも活用できます。
5. 請求日だけを切り抜く
アクション名: テキストを切り抜く

💡このアクションでは、「テキストの解析」アクションで見つけた文字列から、日付だけを取り出します。
Match には 「請求日: 2026年6月1日」 のような形で入るので、請求日: の後ろだけを抜き出します。
設定する内容:
元のテキスト: テキストの解析で取得した%Match%
モード: 指定されたフラグの後にあるテキストを取得する
開始フラグ: 請求日:
大文字小文字を区別しない: オフ
生成された変数:
変数CroppedTextをクリック>請求日に変更
IsFlagFound: オフ
※この手順で、最終的に 2026年6月1日 のような日付だけを取り出します。
6. 結果を確認する
フローを実行すると、下記のように請求番号、請求日が取得できました。


最後に

PDFの全文を取り出してから、必要な情報だけを切り抜く流れを作っています。
そう、実はこの「切り抜き」の部分では、「テキスト」アクションをたくさん使います。
この「テキスト」アクションは、さまざまなフローで活用できる、まさに基礎の中の基礎です。
この考え方は、請求書だけでなく、納品書・領収書・申込書など、さまざまなPDF書類にも応用できます。
次回は、PDFから必要な情報を抽出する続きです。
それではまたお会いしましょう!
▼ ご質問・記事リクエストは、こちら
note質問箱

いいなと思ったら応援しよう!
よろしければ応援をお願いします。いただいたチップは、活動費として活用し、一部は寄付に回しています。