目次
🎯 目的
- 毎朝受信する請求書メールから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)
処理内容:
- Chromeを起動し
https://outlook.office.com/mail/にアクセス - 受信ボックスで条件(件名 or 差出人)でフィルタ検索
- 対象メールを開いて、PDF添付ファイルをダウンロード
- 保存先:
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投稿で通知 |
📋 テスト手順
- Outlookで「請求書」という件名+PDF添付のメールを自分宛に送る
- PADを手動で実行
inbox_downloads/にPDFが保存されるか確認- 正しく会社名・日付が抽出されて、リネームされているか確認
invoices/会社名/フォルダに移動されているか確認log.csvに1行追加されているか確認
❓ よくある質問(FAQ)
Q1. メール本文に会社名がない場合は?
A. 添付ファイル名から抽出する構成にするのが確実です。
本文と添付の両方をチェックする構成にもできます。
Q2. Outlook Webでなく、アプリ版のOutlookも使えますか?
A. PADでは Outlookデスクトップアプリとの連携アクションも可能です。
ただしセキュリティ制限が強い環境では、Web版操作の方が柔軟です。
Q3. ファイル名が崩れていたら?
A. 抽出失敗時は「未分類」や「その他」フォルダへ移す処理を入れるとエラーになりません。
