【第4回】複数の請求書をまとめて作成しよう


前回までのおさらい

ここまでで、Power Automate Desktop(PAD)を使い、

  1. Excelから請求データを読み込み
  2. Excelテンプレートに差し込み
  3. 請求書(Excel)をPDFに変換して保存

というの請求書自動作成とPDF変換処理を構築してきました。


今回のゴール

今回は、すべての顧客分の請求書を一括処理できるようにします!

  • Excelの全行を対象にループ処理を行う
  • 顧客ごとにExcelテンプレートへ差し込み
  • PDFに変換して保存
  • 自動的に複数請求書がまとめて生成される

処理フローの全体像

Excel読み込み
 ↓
For each 行 in 請求データ
 ↓
 テンプレート読み込み
 ↓
 文字列置換(顧客名/請求番号/金額)
 ↓
 Excelファイルとして保存
 ↓
 Excelを閉じる
 ↓
 PDFファイルを作成
 
(繰り返し)

PADでの構築手順

※ 2回目のフローをベースに、3回目のアクションを追加して修正します。

⓪事前準備

2回目のフローの変数を変更します。

4回目の作業フォルダを作成して、2回目で利用していた「販売管理シート.xlsx」「請求書テンプレート.xlsx」を、今回の作業フォルダにコピーします。
また、請求書の作成ができているかを確認するために、「Excel請求書フォルダ」と「PDF請求書フォルダ」を作成しておきます。

▶ 作業フォルダ

作業フォルダを作成します。

C:\作業フォルダ\004_請求書作成

▶ Excel請求書フォルダ

請求書テンプレート.xlsxに、請求情報を差し込みしたExcelファイルを保存するためのフォルダです。

C:\作業フォルダ\004_請求書作成¥Excel請求書フォルダ

▶ PDF請求書フォルダ

Excelの請求書ファイルをPDFに変換して保存するためのフォルダです。

C:\作業フォルダ\004_請求書作成¥PDF請求書フォルダ

▶ ファイルの配置

作業フォルダに、2回目で利用していた「販売管理シート.xlsx」「請求書テンプレート.xlsx」をコピーして配置します。

C:\作業フォルダ\004_請求書作成
              └販売管理シート.xlsx
              └請求書テンプレート.xlsx


① データ読み込み(再掲)

  • Excel の起動
  • Excel ワークブックを開く
  • Excel ワークシートからデータを読み取る
     → 変数名:ExcelData

② For eachで全行処理(再掲)

  • アクション:For each
  • コレクション:ExcelData
  • 現在の項目:CurrentItem

この中に、以下の処理を入れていきます。


③ テンプレート読み込みと置換(再掲)

以下の3つの置換を順に設定します:

  1. <<顧客名>>%CurrentItem[0]%
  2. <<請求番号>>%CurrentItem[1]%
  3. <<金額>>%CurrentItem[2]%

以下のアクションを上記パターン分設定する。

  • アクション:Excelワークシート内のセルを検索して置換する
  • Excelインスタンス:%ExcelInstance2%
  • 検索モード:検索して置換
  • 検索するテキスト:<<顧客名>>
  • 置換するテキスト:%CurrentItem[0]%

④ Excelファイルとして保存

  • アクション:Excelを閉じる
  • Excelを閉じる前:名前を付けてドキュメントを保存
  • ドキュメント形式:既定
  • ドキュメントパス:例)C:\作業フォルダ\004_請求書作成\Excel請求書フォルダ¥%CurrentItem[1]%_%CurrentItem[0]%_請求書.xlsx

⑤ PDF形式で保存(詳細は3回目を参照)

▶ 変数設定

  • Excel請求書ファイル:
     C:\作業フォルダ\004_請求書作成\Excel請求書フォルダ¥%CurrentItem[1]%_%CurrentItem[0]%_請求書.xlsx
  • PDF請求書ファイル:
     C:\作業フォルダ\004_請求書作成\PDF請求書フォルダ¥%CurrentItem[1]%_%CurrentItem[0]%_請求書.pdf

▶ ファイルが存在する場合

  • ファイルが次の場合:存在する
  • ファイルパス:PDF請求書ファイル

▶ (ファイルが存在する場合)ファイルの削除

  • 削除するファイル:PDF請求書ファイル

▶ 既定のプリンターを変更

プリンター名:Microsoft Print to PDF

▶ ドキュメントの印刷

  • 印刷するドキュメント:Excel請求書ファイル

▶ キーの送信

  • キーの送信先:フォアグラウンドウィンドウ
  • 送信するテキスト:PDF請求書ファイル

▶ キーの送信

  • キーの送信先:フォアグラウンドウィンドウ
  • 送信するテキスト:Enter
    ※特殊キーの挿入>その他>Return を選択

▶ 全体フロー


▶ 実行してみよう

保存してフローを実行すると、Excel内のすべての行について請求書が自動生成され、PDFファイルとして保存されます。

出力例:

  • C:\作業フォルダ\004_請求書作成\PDF請求書フォルダ¥INV-001_田中商事_請求書.pdf
  • C:\作業フォルダ\004_請求書作成\PDF請求書フォルダ¥INV-002_鈴木製作所_請求書.pdf

まとめ

今回のポイント:

  • PADでの繰り返し処理(For each)を活用
  • Excelの全行を対象にPDFの処理を自動実行
  • 「手作業ゼロ」で全顧客分の請求書が作れる!

次回予告

第5回:保存先フォルダを顧客名や日付で自動作成・整理しよう!

次回は、請求書PDFを「顧客名」や「年月別」のフォルダに自動で分類・保存する方法を紹介します。

お楽しみに!