この記事では、「請求書のひな形」を活用して、複数の請求書PDFファイルを自動で作成する方法について解説します。
手作業で多数の請求書を作成し、正確にデータを入力する作業は、非常に集中力と根気を要します。
しかし、今回ご紹介するVBAツールを使えば、「請求書のひな形」と「請求書データ」を用意するだけで、複数の請求書PDFを一瞬で生成できます。
あとは、生成されたPDFを印刷して郵送するか、電子メールに添付して送信するだけです。
この「請求書PDF作成ツール」の作り方を理解すれば、ひな形や請求書データの内容を自由に変更できるようになります。
また、Excelのセル操作ができる方であれば、VBAのソースコードを変更せずに、請求書のレイアウトをカスタマイズすることも可能です。
それでは、さっそく請求書PDFを自動生成する機能を作っていきましょう。
困っている女性
困っている女性
困っている女性
解決する男性
解決する男性
困っている女性
もくじ
「ツール概要図」(請求書PDFを作成する)
今回作成するツールの概要図は、以下です。

請求書PDF作成ツールの概要図
今回の請求書PDF作成ツールは、以下を作成する必要があります。
- PDFファイルを保存するフォルダを指定するセル
- PDFファイル名を指定するセル
- 請求書ひな形:EXCELシート
- 差込データ一覧(請求書データ):EXCELシート
- VBA(請求書データを切り替えて、請求書ひな型に流し込み、PDFファイルを作成する)
手っ取り早く、このツールを利用したい方は、以下から「ダウンロード購入」できます。
BOOTH)請求書PDF作成ツール:【ExcelVBAツール】
それでは、順番にツールの作り方を説明します。
請求書データを入力する欄を準備する
まず、請求書データを入力する欄を作成します。
「差込データ」シートを作成する

差込データシートを作成する
- 「差込データ」という名前のシートを作成します。
- B列に請求データ項目名を1行目から入力します。(項目名列)
- A列にサンプル請求データを1行目から入力します。(請求書ひな形作成で利用)
- C列以降は、各請求データを入力します。(入力した列数分、請求書が作成されます。)
「請求データ」の項目説明
以下に請求データ項目を説明します。
- 会社名:請求先の会社名を入力します。
- 担当者名:請求先の担当者名を入力します。
- 請求書番号:自社で管理している請求書番号を入力します。
- 注文日:注文日を入力します。(yyyy/m/d形式)
- お支払い期限:請求金額の支払い期限を入力します。(yyyy/m/d形式)
- 品名1:注文された商品1の名前を入力します。
- 品名1数量:注文された商品1の数量を入力します。(数値)
- 品名1単価:注文された商品1の単価を入力します。(数値)
- 品名2:注文された商品2の名前を入力します。
- 品名2数量:注文された商品2の数量を入力します。(数値)
- 品名2単価:注文された商品2の単価を入力します。(数値)
- 品名3:注文された商品3の名前を入力します。
- 品名3数量:注文された商品3の数量を入力します。(数値)
- 品名3単価:注文された商品3の単価を入力します。(数値)
- 品名4:注文された商品4の名前を入力します。
- 品名4数量:注文された商品4の数量を入力します。(数値)
- 品名4単価:注文された商品4の単価を入力します。(数値)
- 品名5:注文された商品5の名前を入力します。
- 品名5数量:注文された商品5の数量を入力します。(数値)
- 品名5単価:注文された商品5の単価を入力します。(数値)
- 備考1:備考欄の1行目に表示したいメッセージを入力します。
- 備考2:備考欄の2行目に表示したいメッセージを入力します。
- 備考3:備考欄の3行目に表示したいメッセージを入力します。
PDFファイルの保存先フォルダ、ファイル名を指定する欄を準備する
つぎに、PDFファイルを保存するフォルダパス、ファイル名を指定する欄を作成します。
「ツール」シートを作成する

ツールシートを作成する
- 「ツール」という名前のシートを作成します。
- A1セルに「PDF作成先フォルダ」のタイトル欄を作成します。
- B1セルに「PDF作成先フォルダ」を指定する欄を作成します。
- A2セルに、「PDFファイル名」のタイトル欄を作成します。
- B2セルに、「PDFファイル名」を指定する欄を作成します。
B2セルは、「差込データ」シートの請求書データを利用して指定します。
請求書番号と請求先の会社名をPDFファイルにしたいので、具体的には以下を入力します。
=差込データ!A3 & “_” & 差込データ!A1 & “.pdf”
こうすることにより、請求書PDFファイル毎に自動的にファイル名を変えることが可能となります。
請求書のひな形を準備する
つぎに、請求書ひな形を作成していきます。
「ひな形」シートを作成する

請求書ひな形シートを作成する
- 「ひな形」という名前のシートを作成します。
- B2セルに、「請求書」と入力します。
- B4、C4、D4セルを結合し、「=差込データ!A1」と入力します。
- B5、C5、D5セルを結合し、「=差込データ!A2 & ” 様”」と入力します。
- B6、C6、D6セルを結合し、「下記の通りご請求申し上げます。」と入力します。
- B7セルに「合計金額」と入力します。
- C7セルに「=F18」と入力します。
- B8セルに「お支払い期限:」と入力します。
- C8セルに「=差込データ!A5」と入力します。
- E2セルに「請求書番号:」と入力します。
- F2セルに「=差込データ!A3」と入力します。
- E3セルに「注文日:」と入力します。
- F3セルに「=差込データ!A4」と入力します。
- E4、F4セルを結合し、自社の会社名を入力します。(例:ABC Creative(株))
- E5、F5セルを結合し、自社の電話番号を入力します。(例:TEL:01-2345-6789)
- E6、F6セルを結合し、自社の郵便番号を入力します。(例:〒123-4567)
- E7、F7セルを結合し、自社の住所を入力します。(例:◯◯市□□町1丁目2-3)
- E8、F8セルを結合し、自社のビル名を入力します。(例:△△△△ビル10階)
- B10、C10セルを結合し、「品名」というタイトルを入力します。
- D10セルに「数量」というタイトルを入力します。
- E10セルに「単価」というタイトルを入力します。
- F10セルに「金額」というタイトルを入力します。
- B11、C11セルを結合し、「=IF(差込データ!A6<>””,差込データ!A6,””)」と入力します。
- B12、C12セルを結合し、「=IF(差込データ!A9<>””,差込データ!A9,””)」と入力します。
- B13、C13セルを結合し、「=IF(差込データ!A12<>””,差込データ!A12,””)」と入力します。
- B14、C14セルを結合し、「=IF(差込データ!A15<>””,差込データ!A15,””)」と入力します。
- B15、C15セルを結合し、「=IF(差込データ!A18<>””,差込データ!A18,””)」と入力します。
- D11セルに「=IF(差込データ!A7<>””,差込データ!A7,””)」と入力します。
- D12セルに「=IF(差込データ!A10<>””,差込データ!A10,””)」と入力します。
- D13セルに「=IF(差込データ!A13<>””,差込データ!A13,””)」と入力します。
- D14セルに「=IF(差込データ!A16<>””,差込データ!A16,””)」と入力します。
- D15セルに「=IF(差込データ!A19<>””,差込データ!A19,””)」と入力します。
- E11セルに「=IF(差込データ!A8<>””,差込データ!A8,””)」と入力します。
- E12セルに「=IF(差込データ!A11<>””,差込データ!A11,””)」と入力します。
- E13セルに「=IF(差込データ!A14<>””,差込データ!A14,””)」と入力します。
- E14セルに「=IF(差込データ!A17<>””,差込データ!A17,””)」と入力します。
- E15セルに「=IF(差込データ!A20<>””,差込データ!A20,””)」と入力します。
- F11セルに「=IF(D11<>””,D11*E11,””)」と入力します。
- F12セルに「=IF(D12<>””,D12*E12,””)」と入力します。
- F13セルに「=IF(D13<>””,D13*E13,””)」と入力します。
- F14セルに「=IF(D14<>””,D14*E14,””)」と入力します。
- F15セルに「=IF(D15<>””,D15*E15,””)」と入力します。
- B16、C16、D16、E16セルを結合し、「小計」と入力します。
- B17、C17、D17、E17セルを結合し、「消費税」と入力します。
- B18、C18、D18、E18セルを結合し、「合計」と入力します。
- F16セルに「=SUM(F11:F15)」と入力します。
- F17セルに「=ROUND(F16*0.1, 0)」と入力します。
- F18セルに「=F16+F17」と入力します。
- B20セルに「下記口座へのお振込をお願いいたします。」と入力します。
- B21セルに「銀行名:」と入力します。
- C21セルに自社の銀行名を入力します。(例:◯◯銀行)
- B22セルに「支店名:」と入力します。
- C22セルに自社の銀行支店名を入力します。(例:△△支店)
- B23セルに「支店番号:」と入力します。
- C23セルに自社の銀行支店番号を入力します。(例:123)
- B24セルに「口座番号:」と入力します。
- C24セルに自社の銀行口座番号を入力します。(例:456789)
- B25セルに「口座名義:」と入力します。
- C25セルに自社の口座名義を入力します。(例:ABC Creative(株))
- B27セルに「備考」と入力します。
- C27、D27、E27、F27セルを結合し、「=IF(差込データ!A21<>””,差込データ!A21,””)」と入力します。
- C28、D28、E28、F28セルを結合し、「=IF(差込データ!A22<>””,差込データ!A22,””)」と入力します。
- C29、D29、E29、F29セルを結合し、「=IF(差込データ!A23<>””,差込データ!A23,””)」と入力します。
各セルのフォントサイズや罫線、背景色をつければ、請求書ひな形が完成します。
あと念の為に、改ページプレビューで1ページに収まっているか確認してください。
VBAで請求書PDFを作る機能の作成
開発タブの「Visual Basic」をクリックして、「Microsoft Visual Basic for Applications」を起動します。

Microsoft Visual Basic for Applicationsを起動する
「Microsoft Visual Basic for Applications」にVBAプログラムを入力します。

請求書PDFを作成するVBAプログラム
標準モジュールを追加して、以下のソースを書きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
Public Sub MainProc() '変数を宣言する Dim shtTool As Worksheet Dim shtHina As Worksheet Dim shtData As Worksheet Dim strPdfPath As String '各シートを変数に格納する Set shtTool = ThisWorkbook.Sheets("ツール") Set shtHina = ThisWorkbook.Sheets("ひな形") Set shtData = ThisWorkbook.Sheets("差込データ") Do While True 'データシートの3列目を1列目にコピーする shtData.Columns(3).Copy shtData.Columns(1) '3列目を削除する shtData.Columns(3).Delete 'A1セルが空なら、ループを抜ける If shtData.Range("A1") = "" Then Exit Do 'PDFファイル名を変数にセットする strPdfPath = shtTool.Range("B1") & "\" & shtTool.Range("B2") 'ひな形シートでPDFを作成する shtHina.ExportAsFixedFormat xlTypePDF, strPdfPath Loop MsgBox "完了" End Sub |
次に、EXCELを「◯◯◯.xlsm」というような感じでマクロ有効ブック形式で保存します。
請求書PDF作成ツールの使い方
それでは、請求書PDFを作成するツールの使い方を説明します。
「開発」タブの「マクロ」をクリックします。

VBAプログラムを実行する
先程作成したVBAプログラム「MainProc」が一覧に表示されていますので、選択します。
次に、「実行」ボタンをクリックして請求書PDFを作成します。

実行するVBAプログラム名を選択する
しばらく待つと、指定したフォルダに請求書PDFファイルが作成されます。

指定されたフォルダに請求書PDFが作成された
作成された請求書PDFファイルのファイル名は、「ツール」シートで指定したPDFファイル名になっています。
すなわち、「請求書番号_請求先会社名.pdf」の形式になっています。
作成された請求書PDFの中身を確認してみましょう。

請求書PDFの中身を確認する
「ひな形」シートの各セルに指定した項目の値が表示されています。
請求書PDFを作成するVBAプログラム(MainProc)の説明
それでは、請求書PDFを作成するVBAプログラム(MainProc)を説明します。
①各変数を宣言する
1 2 3 4 5 |
'変数を宣言する Dim shtTool As Worksheet Dim shtHina As Worksheet Dim shtData As Worksheet Dim strPdfPath As String |
②各シートを変数に格納する
1 2 3 4 |
'各シートを変数に格納する Set shtTool = ThisWorkbook.Sheets("ツール") Set shtHina = ThisWorkbook.Sheets("ひな形") Set shtData = ThisWorkbook.Sheets("差込データ") |
③差込データシートの3列目を1列目にコピーする
1 2 |
'データシートの3列目を1列目にコピーする shtData.Columns(3).Copy shtData.Columns(1) |
3列目を丸ごとコピーして、1列目に列ごとコピーしています。
なぜなら、「ひな形」シートの各セルは、「差込データ」シートの1列目のセルを参照しているからです。
④差込データシートの3列目を削除する
1 2 |
'3列目を削除する shtData.Columns(3).Delete |
先ほど、1列目にコピーしたため、3列目を削除します。
⑤差込データシートのA1セルが空ならループを抜ける
1 2 |
'A1セルが空なら、ループを抜ける If shtData.Range("A1") = "" Then Exit Do |
A1セルが空なら、ループ処理を抜けて、請求書PDFファイル作成を終了します。
A1セルが空でないなら、次の請求書PDFファイル作成を行います。
すなわち、3列目から1列目にコピーしたときに、1列の1行目(つまりA1セル)が空になったか確認しています。
請求書データの会社名が空ということで、次の請求書データがないと判断しています。
⑥PDFファイル名を変数にセットする
1 2 |
'PDFファイル名を変数にセットする strPdfPath = shtTool.Range("B1") & "\" & shtTool.Range("B2") |
格納した変数の値は、次の請求書PDF作成で利用します。
⑦ひな形シートでPDFファイルを作成する
1 2 |
'ひな形シートでPDFを作成する shtHina.ExportAsFixedFormat xlTypePDF, strPdfPath |
「ひな形」シートから参照する請求書データ項目を、「差込データ」シートの1列目の項目にしていれば、好きなように請求書レイアウトは変更してもVBAプログラムを変更する必要はありません。
また、請求書データ項目を追加したり、減らしたりも可能です。
好きなように変更してみてください。
この機能を利用して、請求書作成作業の負担を減らしましょう。
以上です。
手っ取り早く、このツールを利用したい方は、以下から「ダウンロード購入」できます。
BOOTH)請求書PDF作成ツール:【ExcelVBAツール】
最後まで読んでいただきありがとうございました。
この記事をシェアしていただけると喜びます。