【第3回】請求書をPDFに変換して保存しよう


前回のおさらい

前回は、Power Automate Desktop(PAD)を使って、
Excelで読み取った請求データをExcelの請求書テンプレートに差し込み、
請求書ファイル(.xlsx)を自動で生成しました。


今回のゴール

今回は、前回作成した請求書(Excel)を PDF形式に変換して保存 できるようにします。

  • Excelファイルを開いてPDFとして保存
  • 保存先のフォルダを指定

 ※ 今回も1件分のみ処理します。複数件処理は次回!


必要なファイル

  • 前回出力した .xlsx 請求書ファイル(差し込み済み)が以下のフォルダにあることを前提にします。
    例:C:/作業フォルダ/003_請求書作成/INV-001_田中商事_請求書.xlsx

PDFで保存する方法

ExcelファイルをPDFに変換するには工夫がいります。

Wordファイルの場合は、ファイル保存時にPDFに変換して保存することが選択できますが、
Excelファイルの場合は、ファイル保存時にPDFに変換して保存することができません。

ExcelファイルをPDFで保存する方法はいくつかありますが、ここではWindowsでの標準機能を使った方法をご紹介します。。

1.Excelのエクスポート機能を利用

Excelのファイルメニューにある、エクスポート機能を利用すると、PDFでファイルが出力できます。

「ファイル」>「エクスポート」>「PDF/XPSドキュメントの作成」>「PDF/XPSの作成」ボタン
 保存先、ファイル名を指定して、保存ができます。

2.標準の印刷機能を利用

Windowsには、「Microsoft Print to PDF」というWindowsに標準搭載されている仮想プリンター機能があり、印刷時に紙に印刷する代わりにPDFファイルとして保存できる機能です。

Excelを印刷するときに、「Microsoft Print to PDF」をプリンターとして選択して印刷すれば、PDFとしてファイルを保存できます。

PADのフローにPDF出力処理を作ろう。

今回は、前述した「2.標準の印刷機能を利用」を使ってExcelファイルをPDFに変換します。

⓪ ファイル名を変数で保存

▶ 印刷対象のファイルパスを変数で設定

  • 変数名:請求書Excelファイルパス
  • 例:C:/作業フォルダ/003_請求書作成/INV-001_田中商事_請求書.xlsx

▶ 保存するPDFのファイルパスを変数で設定

  • 変数名:PDFファイルパス
  • 例:C:/作業フォルダ/003_請求書作成/PDF/INV-001_田中商事_請求書.pdf

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

▶ 既定のプリンターを取得

  • 変数名:PrinterName

既定のプリンターに「Microsoft Print to PDF」を設定して、PDFファイルを出力します。

PDFファイルの出力処理が終わった後に、既定のプリンターをもとに戻すために、始めに既定のプリンターを取得しておきます。


▶ 既定のプリンターを設定

プリンター名:Microsoft Print to PDF

※Windowsに登録されているプリンターの中から選択できます。

② PDF形式で保存

▶ ドキュメントの印刷

  • 印刷するドキュメント:請求書Excelファイルパス 
     ※「⓪ ファイル名を変数で保存」で設定した変数を指定。

▶ キーの送信

「ドキュメントの印刷」を実行すると、ファイルパスを指定するウィンドウが表示されます。画面でファイルパスを設定するため、キーの送信で入力します。

  • キーの送信先:フォアグラウンドウィンドウ
  • 送信するテキスト:PDFファイルパス
    ※「⓪ ファイル名を変数で保存」で設定した変数を指定。

▶ キーの送信

入力したファイルパスを確定させるためにエンターキーを送信します。

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

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

▶ 既定のプリンターを設定

プリンター名:PrinterName

※「① 既定のプリンターを変更」で取得した既定のプリンターを設定します。


▶ 実行してみよう

実行すると、ExcelファイルがPDF形式で自動変換され、指定のフォルダに保存されます。

例:

  • 入力:INV-001_田中商事_請求書.xlsx
  • 出力:C:/作業フォルダ/003_請求書作成/PDF/INV-001_田中商事_請求書.pdf

改良点

指定したPDFファイルが既に存在する場合、「② PDF形式で保存」の途中で、上書き保存を確認する画面が表示され、処理が止まってしまいます。

今回は事前にファイルの存在チェックをして、存在した場合にあらかじめ削除しておくという処理を追加します。

⓪-1 【追加】ファイルの存在チェック

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

  • ファイルが次の場合:存在する
  • ファイルパス:PDFファイルパス
    ※「⓪ ファイル名を変数で保存」で設定した変数を指定。

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

  • 削除するファイル:PDFファイルパス
    ※「⓪ ファイル名を変数で保存」で設定した変数を指定。

フロー全体

待機処理を9行目、12行目に入れています。
PADの処理スピードとExcelの起動スピードに差があるため、調整のため待機処理を入れています。

まとめ

今回のポイント:

  • PADではExcelファイルを開いてPDFに変換できる
  • 保存先を固定しておくことで管理が簡単になる

次回予告

第4回:複数の請求書を一括で作成・PDF化しよう!

次回は、請求データ全行に対してループ処理を追加し、
複数顧客の請求書を一括で作成&PDF保存する方法をご紹介します!