取引先から届くPDF請求書を開き、金額や請求書番号を目で確認しながらExcelへ手入力する作業に、時間を取られていませんか。
件数が月に数十件を超えてくると、転記ミスや入力漏れも増え、チェックの手間まで膨らんでいきます。
Power Automate Desktopには、PDFファイルからテキストを取り出し、必要な値だけを切り出すアクションが用意されています。
これをExcelへの書き込みアクションと組み合わせれば、無料版の範囲だけでこの一連の流れを自動化できます。
この記事では、無料版でできる範囲と、PDF請求書からテキストを抽出してExcelへ転記する手順、読み取れないPDFの見分け方を整理しています。
無料版でできること
Power Automate DesktopはWindows 10とWindows 11のユーザーであれば追加費用なしで使え、自分のPC上でサインインしている間だけ動く『アテンド型』の形で自動化を組めます。
PDFからのテキスト抽出やExcelへの書き込みは、この無料版に含まれるローカルアクションのため、PDF請求書をExcelへ転記する程度の自動化であれば課金なしで完結します。
ただし、スケジュール実行や、パソコンの電源が切れていても動く無人実行、SharePointなどのクラウドコネクタとの連携は有償プランが必要になります。
毎朝決まった時間に自動でPDFを処理したい場合や、複数人で同じフローを共有したい場合は、この制限に先に当たることになります。
PDF請求書の読み取り方式にも向き不向きがあり、選ぶアクションによって対応できる範囲が変わります。
| PDFの種類 | 文字を選択できるか | 使えるアクション | 追加の準備 |
|---|---|---|---|
| テキスト型PDF(会計システムやWordから出力) | できる | Extract text from PDF | 不要 |
| スキャン画像PDF(紙の請求書をスキャナで取り込んだもの) | できない | Extract text with OCR(画像に変換してから実行) | PDFのページを画像として書き出す処理が別途必要 |
手順(PDF請求書からExcelへの自動転記)
ここでは、1件のPDF請求書からExcelへ転記する基本の流れと、複数ファイルへの展開までを組みます。
請求書の書式が取引先ごとに違うと後の抽出結果もばらつくため、まずは同じフォーマットの請求書1件で組み、動作を確認してから対象を広げると手戻りが少なくなります。
Step1. PDFファイルからテキストを抽出する
『Extract text from PDF』アクションを追加し、対象のPDFファイルと抽出するページを指定します。
ページ指定は全ページ、単一ページ、範囲のいずれかから選べ、請求書のように1ページで完結する書類であれば単一ページの指定で十分です。
実行結果はExtractedPDFTextという変数にテキストとして格納されます。
Step2. 正規表現で必要な値を切り出す
『Parse text』アクションを追加し、ExtractedPDFTextを対象に『Is regular expression』を有効にして、取り出したい値のパターンを指定します。
たとえば合計金額を切り出す場合、次のようなパターンで指定できます。
合計金額[::]?\s*¥?([0-9,]+) 一致した値はMatchという変数に入り、First occurrence onlyを無効にすると一致箇所すべてをMatchesのリストとして受け取れます。
請求書番号や発行日など、取り出したい項目が複数ある場合は、この『Parse text』アクションを項目の数だけ並べます。
Step3. Excelへ書き込む
『Launch Excel』アクションで転記先のExcelファイルを開き、続けて『Write to Excel worksheet』アクションで、Step2で取り出した値を指定のセルへ書き込みます。
書き込み先の行は、あらかじめ用意した台帳シートの最終行の次の行を指定し、請求書番号・取引先名・金額・処理日をひとまとまりで記録すると、後から見返しやすくなります。
Excelへの転記先を指定する際の考え方は、フォームの回答をExcelへ書き込む場合とも共通しています。

Step4. 複数のPDFファイルに対して繰り返す
1件分の動作を確認できたら、『Get files in folder』アクションで請求書PDFの保存フォルダを取得し、『For each』ループでStep1からStep3までを1ファイルずつ実行します。
書き込み先の行番号はループのたびに1つずつ増やし、2件目以降が同じ行を上書きしないようにしておく必要があります。
読み取れないPDFの見分け方
紙の請求書をスキャナやコピー機で取り込んだPDFは、見た目は同じでも中身がまったく違います。
判別方法は単純で、PDFをブラウザで開いてマウスで文字をドラッグしてみることです。
文字だけが選択できればテキスト型のPDFで、ページ全体が1枚の画像のように選択されるならスキャン画像PDFです。
『Extract text from PDF』アクションは、PDFの中に埋め込まれた文字データを読み取る仕組みのため、スキャン画像PDFに対して実行しても空の結果か文字化けした結果しか返りません。
画像として保存された文字を読み取るには、画像専用の光学式文字認識、いわゆるOCRの処理が別途必要です。
Power Automate Desktopには無料版の範囲で使える『Extract text with OCR』アクションがあります。
ただし対象として指定できるのは画面全体、前面のウィンドウ、ディスク上の画像ファイルのいずれかで、PDFファイルを直接指定することはできません。
そのため、スキャン画像PDFを扱う場合は、いったんPDFの各ページを画像として書き出したうえで、その画像に対してOCRを実行する二段構えの処理を組む必要があります。
AI Builderの光学式文字認識アクションを使えば、スキャン画像PDFをより高い精度で直接処理できますが、こちらはAI Builderのクレジットを消費する有償機能です。
つまずきやすいポイント
正規表現による切り出しは、請求書のレイアウトが変わると途端に一致しなくなります。
「合計金額」の直後に半角スペースが入るか全角スペースが入るかだけでも一致しなくなることがあり、取引先ごとにフォーマットが違う場合は、取引先の数だけパターンを用意する運用になりがちです。
自動化の対象を広げる前に、どの業務から着手すべきかを整理しておくと、こうした個別対応の量を見誤りにくくなります。

似た仕組みをGoogle Apps Scriptで実現する方法は、こちらの記事でも紹介しています。

PDF請求書の転記自動化について相談してみませんか?
「正規表現の書き方が分からない」「取引先ごとにフォーマットが違ってうまく抽出できない」「スキャン画像PDFの扱い方が分からない」
少しでもお心当たりがあれば、お気軽にご相談ください。
現在、Power Automate Desktopの業務自動化に関するお悩みをお伺いする 無料の個別相談 を実施しています。
よくある質問
Q. 無料版のPower Automate Desktopでも、毎日決まった時間に自動でPDFを処理できますか?
無料版はパソコンにサインインした状態で手動または任意のタイミングで実行する形のため、時間指定での自動起動はできません。
毎朝決まった時間に処理したい場合は、Power Automateの有償プランでクラウドフローと組み合わせ、スケジュールトリガーからデスクトップフローを呼び出す構成が必要です。
Q. 請求書のフォーマットが取引先ごとに違う場合、1つのフローで対応できますか?
正規表現のパターンを取引先ごとに分岐させれば1つのフローの中で対応できますが、フォーマットの種類が増えるほど分岐が複雑になります。
主要な取引先が数社に絞られているなら1本のフローに分岐を持たせ、フォーマットが多岐にわたる場合は取引先グループごとにフローを分けたほうが保守しやすくなります。
Q. スキャン画像PDFでも、精度を気にしなければ無料版のOCRだけで運用できますか?
運用自体は可能なものの、精度は入力画像の解像度や文字のかすれに大きく左右されるのが実情です。
金額のように誤りが許されない項目を扱う場合は、無料版のOCR結果をそのまま転記せず、抽出結果と元のPDFを目視で突き合わせる確認工程を残しておくと安全です。