PowerAutomateDesktopでWeb売上レポートを週次で自動ダウンロード&フォルダ整理する方法

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

🎯 目的

  • 毎週月曜9:00に自動で売上CSVをダウンロード
  • 日付付きフォルダ(例:20250909/)に保存
  • 30日以上前のデータはZIP圧縮してアーカイブフォルダに退避
  • ログインやダウンロード完了の待機も自動で対応

🔄 自動化の全体フロー

[1] Chromeで管理画面にログイン
 ↓
[2] 売上CSVをダウンロード(ダウンロード完了を監視)
 ↓
[3] yyyyMMdd形式のフォルダを作成
 ↓
[4] ダウンロードファイルを日付フォルダに移動
 ↓
[5] 30日以上前のフォルダをZIP圧縮してアーカイブ
 ↓
[6] 実行ログをCSVに追記

📁 フォルダ構成(推奨)

WeeklyReportBot/
├─ main_flow.padx
├─ modules/
│   ├─ DownloadReport.padx
│   ├─ MoveFileToFolder.padx
│   ├─ ArchiveOldFolders.padx
│   └─ WriteLog.padx
├─ data/
│   ├─ config.json             ← 設定ファイル
│   ├─ log.csv                 ← 処理ログ
├─ reports/
│   ├─ (日付ごとにフォルダ生成)
│   └─ archive/                ← 古いレポートZIP保存先

📄 config.json(設定例)

{
  "downloadFolder": "C:\\Users\\User\\Downloads\\",
  "targetFolder": "C:\\Users\\User\\Documents\\WeeklyReports\\",
  "archiveFolder": "C:\\Users\\User\\Documents\\WeeklyReports\\archive\\",
  "downloadFileNamePrefix": "sales_report_",
  "timeoutSeconds": 60,
  "fileStableWaitSeconds": 3,
  "archiveThresholdDays": 30
}

⏰ タスクスケジューラ設定

項目設定内容
トリガー毎週月曜日 9:00
アクションPower Automate Desktopmain_flow.padx 実行
ユーザー対象ユーザー(ログイン中)
権限「最上位の特権で実行」にチェック

🛠 フロー作成手順(初心者向け)


✅ STEP1:Chrome起動+ログイン(DownloadReport.padx)

処理概要:

  1. Chrome起動(プロファイル指定でログイン維持)
  2. 管理画面へ遷移
  3. 売上CSVダウンロードボタンをクリック

アクション例:

chrome.exe --profile-directory="Profile 1" https://example.com/admin/reports

✅ ログインは初回だけ手動 → セッション保持のためプロファイルを使う


📥 STEP2:ファイルダウンロード完了を監視

方法:

  1. downloadFolder 内のファイルを記録
  2. ダウンロード後の新規ファイル出現を監視
  3. 数秒間サイズ変化がないことを確認(安定確認)

実装アクション:

  • フォルダの一覧を取得(開始時)
  • ループで新ファイルの出現をチェック
  • 出現したらサイズを2回取得し、一定であれば完了

📂 STEP3:日付付きフォルダの作成(MoveFileToFolder.padx)

実装:

  1. 今日の日付を取得(形式:yyyyMMdd)
  2. targetFolder/yyyyMMdd/ を作成(存在しない場合)
  3. ダウンロードファイルをその中に移動
    • ファイル名は元のままでも、固定名でもOK

📦 STEP4:古いフォルダをZIP化してアーカイブ(ArchiveOldFolders.padx)

実装:

  1. targetFolder 以下のフォルダを列挙
  2. フォルダ名が yyyyMMdd 形式 → 日付に変換
  3. 今日から見て 30日以上前のフォルダだけ対象
  4. ZIP圧縮(同名.zip)+アーカイブフォルダへ移動
  5. 元フォルダを削除

🧾 STEP5:ログを記録(WriteLog.padx)

log.csv に追記する内容:

日時保存先フォルダファイル名ステータス
2025/09/08 09:0120250908sales_report_xxx.csv正常

アクション:

  • 現在日時取得
  • フォルダ名・ファイル名取得
  • 結果とともにCSVファイルに1行追記

✅ セレクタ設計例(DownloadReport)

要素セレクタ例
ダウンロードボタンbutton[aria-label="CSVダウンロード"]
ログイン確認div.user-name または img.avatar
ダウンロード完了ファイル監視+DOM非表示などの組み合わせ

✨ 応用Tips

応用内容実装例
ファイル名に日付を追加sales_report_20250909.csv などに名前変更
Slack通知を追加ダウンロード完了後にSlackへ通知(Web投稿 or API)
月次アーカイブも作成月ごとのZIPファイルにまとめて保存も可能
ダウンロード失敗の対応60秒待ってもファイルが出現しなければログに「失敗」記録

📋 テスト手順(5分で確認)

  1. 実際にChromeで売上画面を開き、CSVをDLできる状態にする
  2. main_flow.padx を手動で実行
  3. reports/yyyyMMdd/ フォルダが作成されているか確認
  4. CSVが正しく移動されているか確認
  5. 30日以上前のフォルダがZIPされているか確認(テスト用に日付変更)
  6. log.csv に処理履歴が追加されているか確認

❓ よくある質問(FAQ)


Q1. なぜAPIじゃなくブラウザ操作?

A. Webレポート機能はAPI提供がない or 権限制限がある場合が多く、実際の管理画面でダウンロードする方が確実かつ汎用性が高いためです。


Q2. ダウンロード中にファイルが壊れない?

A. サイズの変化を数秒監視して、安定したら完了とみなす設計にしているため、未完了ファイルを誤処理しない工夫があります。


Q3. フォルダ名を月単位にしたい

A. 「yyyyMM」形式でフォルダを作れば月ごとの整理にも対応可能。フォルダ名は変数で自由に調整できます。


Q4. Windowsを起動しなくても動く?

A. タスクスケジューラは「ユーザーがログオンしているときにのみ実行」の設定が必要です。常に動作させたい場合は、PCをスリープにしないように構成してください。

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

この記事を書いた人

目次