請求書や領収書などのファイルから情報を自動で抽出し、Excelに転記できたら便利ですよね。**Power Automate Desktop(PAD)**を使えば、PDFやテキストファイルからデータを取得し、Excelに整理して保存することが可能です。
本記事では、テキスト抽出からExcel転記までの手順を詳しく解説し、さらに処理の効率化のためにサブフローを活用する方法についても説明します。
目次
フローの概要
このフローでは、次の手順で請求書データを処理します。
- テキスト抽出:請求書などのファイルから必要な情報を抽出
- ファイル名変更:請求書のファイル名を整理
- Excel転記:抽出したデータをExcelに入力
- Excel転記のサブフロー化:フローを整理し、再利用しやすくする
- 複数のPDFを一括処理:サブフローを使って複数の請求書を処理
それでは、詳しく手順を見ていきましょう。
① テキスト抽出
請求書などのPDFファイルからテキストを取得する方法です。
手順
- PADの**「ファイルの操作」**から「フォルダー内のファイルを取得」アクションを追加し、請求書が保存されているフォルダー内のファイルを一覧取得
- 取得した各ファイルに対して、**「PDFからテキストを抽出」**アクションを使用
- 抽出したテキストを変数(例:
extractedText)に保存
👉 ポイント
- 請求書のフォーマットが固定なら、正規表現(RegEx)を使って必要なデータだけ抜き取ると便利
- 「OCRを使用する」にチェックを入れると、スキャンPDFでも抽出可能(ただし精度はファイルによる)
② テキスト抽出後のファイル名変更
抽出した請求書のデータを整理するため、ファイル名を変更して保存します。
手順
- 抽出した請求書の内容から会社名や日付を取得(例:
CompanyName_20240101.pdf形式に変更) - **「ファイルの名前を変更」**アクションを使用して、整理しやすい名前に変更
- 変更後のファイル名をログに記録(必要に応じて)
👉 ポイント
- 会社名・日付を取得するために、正規表現や文字列操作を活用すると精度が向上
- 例えば、「請求日:2024/01/01」などのフォーマットから
20240101を抽出する
③ テキスト抽出データをExcelに転記
抽出したデータをExcelファイルに記録します。
手順
- **「Excelの起動」**アクションでテンプレートExcelを開く
- **「ワークシート内のセルに書き込む」**アクションで、抽出データを入力
- 例:
CompanyName→ A列InvoiceDate→ B列TotalAmount→ C列
- 例:
- **「Excelを保存して閉じる」**アクションでデータを保存
👉 ポイント
- 転記する項目が増える場合、Excelのヘッダー行(タイトル行)とデータの対応を明確に
- フォーマットが統一されていれば表の最終行を特定し、次の空き行にデータを追加する
④ Excel転記処理をサブフロー化
この「Excel転記」処理をサブフローとして作成すると、フロー全体をスッキリ整理でき、再利用も簡単になります。
サブフロー作成方法
- PADの「サブフロー」パネルで「+」をクリックし、新しいサブフローを作成(例:
WriteToExcel) - サブフローの引数として、転記するデータを定義
- 例:
CompanyName(会社名)InvoiceDate(請求日)TotalAmount(合計金額)
- 例:
- 上記のExcel転記処理をサブフロー内に移動
- メインフローでは「サブフローの実行」アクションを使い、データを渡して呼び出す
👉 ポイント
- 引数を使ってデータを渡すことで、汎用的に使える
- 複数の処理を統一でき、フローの変更時に修正箇所が減る
⑤ 複数のPDFを一括処理
最後に、複数の請求書を一括処理する方法です。
手順
- **「フォルダー内のファイルを取得」**アクションでPDFリストを取得
- **「ループ」**を使って、取得した各PDFファイルに対して以下の処理を実行:
- **「サブフロー(テキスト抽出)」**を実行し、情報を取得
- **「サブフロー(Excel転記)」**を呼び出し、データを保存
- すべてのファイルを処理したら、完了ログを出力
👉 ポイント
- エラー発生時の処理を組み込む(例:エラーが出たファイルを別フォルダに移動)
- 大量のファイルがある場合、並列処理を検討
よくある質問
Q1. OCRを使っても正しくテキストが抽出されない
A. OCRの精度はPDFの品質に依存します。以下の対策を試してください:
- フォントが埋め込まれていないPDFは、OCRが正しく動作しない場合あり
- Adobe AcrobatなどでOCRを適用してからPADで処理するのも一つの手段
Q2. Excelの最終行にデータを追加する方法は?
A. 「ワークシート内の最終行を取得」アクションを使い、次の空き行にデータを入力できます。
Q3. PDFがスキャン画像のみでテキストデータがない場合は?
A. 「PDFからテキストを抽出」アクションでOCRを有効にするか、別のOCRツール(Tesseract OCRなど)を使うと精度が向上します。
