PowerAutomateDesktopでPDF請求書を自動リネーム&会社別に仕分けする方法

  • URLをコピーしました!
目次

🎯 目的

  • 毎朝受信する請求書メールからPDFを自動保存
  • PDFの中身やメール本文から「会社名」と「日付」を抽出
  • ファイル名を 〇〇株式会社_請求書_20250911.pdf に変更
  • 会社ごとのフォルダに自動振り分け

🔄 自動化の全体フロー

[1] Outlook Webを起動・対象メールを検索
 ↓
[2] 添付PDFを保存
 ↓
[3] メール本文 or 添付名から会社名+日付を抽出(正規表現)
 ↓
[4] ファイルを指定形式にリネーム
 ↓
[5] 会社名ごとのフォルダへ移動
 ↓
[6] 処理ログ(CSV)に記録

📁 推奨フォルダ構成

InvoiceAutoSorter/
├─ main_flow.padx
├─ modules/
│   ├─ DownloadAttachments.padx
│   ├─ ExtractInfoFromText.padx
│   ├─ RenameAndMove.padx
│   └─ WriteLog.padx
├─ data/
│   ├─ company_folders.json       ← 会社名ごとのフォルダ設定(任意)
│   ├─ log.csv                    ← 実行ログ(処理済みファイルの記録)
├─ inbox_downloads/              ← 一時保存用フォルダ
├─ invoices/                     ← 各社フォルダがここに作成される

📄 ファイル命名規則(目指す最終形)

例:  
・ABC株式会社_請求書_20250911.pdf  
・田中商事_請求書_20250910.pdf  

✅ 実装ステップ(初心者でも安心)


✅ STEP1:Outlook Webから添付ファイルを保存(DownloadAttachments.padx)

処理内容:

  1. Chromeを起動し https://outlook.office.com/mail/ にアクセス
  2. 受信ボックスで条件(件名 or 差出人)でフィルタ検索
  3. 対象メールを開いて、PDF添付ファイルをダウンロード
  4. 保存先:inbox_downloads/

対応セレクタ例:

要素セレクタ例
検索入力欄input[aria-label="検索"]
メール一覧div[role="listitem"]
添付ダウンロードbutton[aria-label="Download attachment"]

✅ STEP2:メール本文 or 添付名から会社名・日付を抽出(ExtractInfoFromText.padx)

1. 添付名からの例(202509 請求書_ABC株式会社.pdf

正規表現:(?<date>\d{6}).*?_(?<name>.+?)\.pdf
抽出 → date = 202509, name = ABC株式会社

2. メール本文からの例

「ABC株式会社 様  
2025年9月分の請求書をお送りします。」

→ 正規表現:(?<name>.+?)株式会社.*?(?<year>\d{4})年(?<month>\d{1,2})月

→ name = ABC, year = 2025, month = 9 → 日付に変換

✅ STEP3:ファイル名リネーム+会社別フォルダへ移動(RenameAndMove.padx)

1. 新ファイル名の生成:

ファイル名:%CompanyName% + "_請求書_" + %yyyyMMdd% + ".pdf"
例:ABC株式会社_請求書_20250911.pdf

2. 会社別フォルダへの振り分け:

移動先:invoices/ABC株式会社/
※存在しない場合は作成

✅ STEP4:処理ログをCSVに記録(WriteLog.padx)

1. 追記内容:

処理日時元ファイル名新ファイル名会社名保存先パス

2. 保存先:

data/log.csv

💡 configファイルで制御(任意)

company_folders.json(特定会社だけサブディレクトリ化したい時など)

{
  "ABC株式会社": "invoices/ABC株式会社/",
  "田中商事": "invoices/田中商事/"
}

※存在しない会社は「invoices/その他/」などに分類も可能


✨ 応用Tips

応用内容実装例
添付が複数ある場合ループ処理+添付ファイル名ごとにリネーム処理
PDFの中身から抽出Adobe Readerを使ってテキストを抽出(可能な範囲)
土日対応を除外曜日チェックを追加(平日のみ実行)
特定取引先だけSlack通知ファイル保存後にSlack Web投稿で通知

📋 テスト手順

  1. Outlookで「請求書」という件名+PDF添付のメールを自分宛に送る
  2. PADを手動で実行
  3. inbox_downloads/ にPDFが保存されるか確認
  4. 正しく会社名・日付が抽出されて、リネームされているか確認
  5. invoices/会社名/ フォルダに移動されているか確認
  6. log.csv に1行追加されているか確認

❓ よくある質問(FAQ)


Q1. メール本文に会社名がない場合は?

A. 添付ファイル名から抽出する構成にするのが確実です。
本文と添付の両方をチェックする構成にもできます。


Q2. Outlook Webでなく、アプリ版のOutlookも使えますか?

A. PADでは Outlookデスクトップアプリとの連携アクションも可能です。
ただしセキュリティ制限が強い環境では、Web版操作の方が柔軟です。


Q3. ファイル名が崩れていたら?

A. 抽出失敗時は「未分類」や「その他」フォルダへ移す処理を入れるとエラーになりません。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次