この記事では、「請求書のひな形」を活用して、複数の請求書PDFファイルを自動で作成する方法について解説します。
手作業で多数の請求書を作成し、正確にデータを入力する作業は、非常に集中力と根気を要します。
しかし、今回ご紹介するVBAツールを使えば、「請求書のひな形」と「請求書データ」を用意するだけで、複数の請求書PDFを一瞬で生成できます。
あとは、生成されたPDFを印刷して郵送するか、電子メールに添付して送信するだけです。
この「請求書PDF作成ツール」の作り方を理解すれば、ひな形や請求書データの内容を自由に変更できるようになります。
また、Excelのセル操作ができる方であれば、VBAのソースコードを変更せずに、請求書のレイアウトをカスタマイズすることも可能です。
それでは、さっそく請求書PDFを自動生成する機能を作っていきましょう。
困っている女性
困っている女性
困っている女性
解決する男性
解決する男性
困っている女性
もくじ
「ツール概要図」(請求書PDFを作成する)
今回作成するツールの概要図は、以下です。
請求書PDF作成ツールの概要図
今回の請求書PDF作成ツールは、以下を作成する必要があります。
- PDFファイルを保存するフォルダを指定するセル
- PDFファイル名を指定するセル
- 請求書ひな形:EXCELシート
- 差込データ一覧(請求書データ):EXCELシート
- VBA(請求書データを切り替えて、請求書ひな型に流し込み、PDFファイルを作成する)
手っ取り早く、このツールを利用したい方は、以下から「ダウンロード購入」できます。
BOOTH)請求書PDF作成ツール:【ExcelVBAツール】
Youtube動画に「請求書PDF作成ツール」の作り方をアップしました。
よかったら、見てください。
それでは、順番にツールの作り方を説明します。
請求書データを入力する欄を準備する
まず、請求書データを入力する欄を作成します。
「差込データ」シートを作成する
差込データシートを作成する
- 「差込データ」という名前のシートを作成します。
- 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プログラム
標準モジュールを追加して、以下のソースを書きます。
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)を説明します。
①各変数を宣言する
'変数を宣言する 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("差込データ")
ここでは、各シートを変数に格納しています。
③差込データシートの3列目を1列目にコピーする
'データシートの3列目を1列目にコピーする shtData.Columns(3).Copy shtData.Columns(1)
ここでは、「差込データ」シートの3列目を1列目にコピーしています。
3列目を丸ごとコピーして、1列目に列ごとコピーしています。
なぜなら、「ひな形」シートの各セルは、「差込データ」シートの1列目のセルを参照しているからです。
④差込データシートの3列目を削除する
'3列目を削除する shtData.Columns(3).Delete
ここでは、「差込データ」シートの3列目を削除しています。
先ほど、1列目にコピーしたため、3列目を削除します。
⑤差込データシートのA1セルが空ならループを抜ける
'A1セルが空なら、ループを抜ける
If shtData.Range("A1") = "" Then Exit Do
ここでは、「差込データ」シートのA1セルが空かどうかを確認しています。
A1セルが空なら、ループ処理を抜けて、請求書PDFファイル作成を終了します。
A1セルが空でないなら、次の請求書PDFファイル作成を行います。
すなわち、3列目から1列目にコピーしたときに、1列の1行目(つまりA1セル)が空になったか確認しています。
請求書データの会社名が空ということで、次の請求書データがないと判断しています。
⑥PDFファイル名を変数にセットする
'PDFファイル名を変数にセットする
strPdfPath = shtTool.Range("B1") & "\" & shtTool.Range("B2")
ここでは、「ツール」シートのB1セル(PDF作成先フォルダ)とB2セル(PDFファイル名)に入力されている値を変数に格納しています。
格納した変数の値は、次の請求書PDF作成で利用します。
⑦ひな形シートでPDFファイルを作成する
'ひな形シートでPDFを作成する shtHina.ExportAsFixedFormat xlTypePDF, strPdfPath
ここでは、「ひな形」シートを利用して、指定されたフォルダに指定されたファイル名でPDFファイルを作成しています。
「ひな形」シートから参照する請求書データ項目を、「差込データ」シートの1列目の項目にしていれば、好きなように請求書レイアウトは変更してもVBAプログラムを変更する必要はありません。
また、請求書データ項目を追加したり、減らしたりも可能です。
好きなように変更してみてください。
この機能を利用して、請求書作成作業の負担を減らしましょう。
以上です。
手っ取り早く、このツールを利用したい方は、以下から「ダウンロード購入」できます。
BOOTH)請求書PDF作成ツール:【ExcelVBAツール】
最後まで読んでいただきありがとうございました。
この記事をシェアしていただけると喜びます。

