請求書をエクセルで自動作成する方法|VBAでPDF出力・メール送信まで
毎月の請求書づくりに、こんな手間を感じていませんか。「前回のファイルをコピーして、宛名と明細を打ち替えて、請求書番号をずらして、印刷してPDFにして、メールに添付して送る」——1件ずつなら数分でも、件数が増えれば大きな時間になります。請求書をエクセルで自動作成できれば、この一連の流れを大幅に短縮できます。
この記事では、請求書・見積書をエクセルで自動作成する方法を、関数を使った半自動からVBAでのPDF出力・メール送信まで、4つのレベルに分けて解説します。メリット・デメリットと外注費用の目安も正直にまとめました。
手作業で請求書を作る3つの課題
請求書を毎回手で作っていると、次のような問題が積み重なります。
- 時間がかかる: 宛名・明細・金額の入力やレイアウト調整を毎回くり返すと、件数が多いほど時間を取られます。
- 転記ミスが起きる: 単価や数量の打ち間違い、合計の計算ミス、宛名の取り違えは、信用に関わるトラブルにつながります。
- 番号管理が煩雑: 請求書番号を手で振っていると、重複や抜け、年度切り替えの戻し忘れが起きやすくなります。
これらは「自動化のレベルを上げる」ほど解消されていきます。順番に見ていきましょう。
レベル1|Excel関数+テンプレートで半自動化
まず取りかかりやすいのが、請求書テンプレートに関数を組み込む方法です。商品名を選ぶと単価が自動で入り、数量を打てば金額・小計・消費税・合計まで計算される、というところまでは関数だけで実現できます。VLOOKUP・XLOOKUPで商品一覧から単価を引き、SUM・ROUNDで金額と税を計算するのが基本構成です。
メリット
- 追加のツール不要。Excelの標準機能だけで作れる
- 計算ミスがなくなり、合計や消費税が自動で正しく出る
デメリット
- 請求書番号の自動採番やPDF出力、メール送信までは関数だけでは難しい
- 1件ごとにファイルを開いて入力・保存する作業は手で残る
向いているケース: 月数件程度で、計算ミスをなくしたい・体裁を整えたいというニーズが中心の場合。
レベル2|VBAで「一覧から1クリック発行」&PDF出力
発行件数が増えてきたら、VBA(マクロ)の出番です。請求データを1行1件で並べた一覧シートを用意し、「発行ボタン」を押すと、その行の内容が請求書フォーマットに流し込まれ、請求書番号を自動で連番採番し、PDFとして書き出す——という流れを1クリックで実行できます。
連番採番は、管理シートに最後に使った番号を保存しておき、発行のたびに1ずつ加算する仕組みにすれば、重複や抜けを防げます。PDF出力はExcelのExportAsFixedFormat機能を使い、「請求書番号+取引先名」などのルールでファイル名を自動的に付けることもできます。
メリット
- 一覧から1クリックで請求書を発行でき、件数が多いほど効果が大きい
- 請求書番号の重複・抜けがなくなる
- PDFのファイル名や保存先を統一でき、後から探しやすい
デメリット
- 作成にはVBAの知識が必要
- 作った人がいなくなると改修できず、属人化しやすい
向いているケース: 毎月まとまった件数の請求書・見積書を発行していて、発行とPDF化の手間を一気に減らしたい場合。一覧から複数件を対応事例のように一括処理することもできます。
レベル3|VBA×Outlook連携でメール送信まで自動化
請求書をPDFにした後の「メールに添付して送る」工程も、VBAからOutlookを操作して自動化できます。一覧の各行に取引先のメールアドレスと宛名を持たせておけば、発行したPDFを添付し、定型の本文と件名を差し込んだメールを自動で作成できます。
運用では、送信前に内容を目視確認できるよう「下書きとして作成して止める」設定にしておくと安心です。確認のうえ手で送信ボタンを押す形にすれば、誤送信のリスクを抑えながら作成の手間だけを自動化できます。
メリット
- 発行からメール作成までを一気通貫で自動化できる
- 宛名・件名・本文の付け間違いを防げる
デメリット
- メール送信を完全自動にすると誤送信のリスクがあるため、確認の仕組みが必要
- 利用しているメール環境(Outlookの種類など)によって作り方が変わる
向いているケース: 請求書をメール添付で送る運用が定着していて、添付・宛名入れの手作業をなくしたい場合。
レベル4|顧客マスタ・商品マスタと連携する
仕上げとして、顧客マスタ・商品マスタを用意して連携させると、入力そのものを最小限にできます。取引先を選べば宛名・住所・メールアドレスが自動で入り、商品コードを選べば品名・単価が呼び出される、という形です。これにより、毎回の入力は「どの取引先に・何を・いくつ」だけで済むようになります。
メリット
- 入力項目が減り、転記ミスが根本からなくなる
- 単価や住所の変更はマスタを直すだけで全体に反映できる
デメリット
- 最初にマスタを整える手間がかかる
- 設計を誤ると後の修正が大変になるため、最初の設計が重要
向いているケース: 取引先や商品が多く、同じ情報を毎回入力している場合。請求書だけでなく見積書の自動作成にもそのまま応用できます。
自動化レベルの比較表
| レベル | できること | 難易度 | 向いているケース |
|---|---|---|---|
| 1 関数+テンプレート | 金額・税の自動計算 | 低 | 月数件・計算ミス防止 |
| 2 VBA発行+PDF | 1クリック発行・連番・PDF出力 | 中 | 発行件数が多い |
| 3 VBA×Outlook | メール作成・添付まで自動 | 中〜高 | メール送付が定着 |
| 4 マスタ連携 | 入力の最小化・ミス根絶 | 高 | 取引先・商品が多い |
自分で作る場合の注意点
関数レベル(レベル1)なら、調べながら自分で作れることも多いです。ただし、VBAでの発行・PDF出力・メール送信まで作り込む場合は、次の点に注意してください。
- 連番管理を慎重に: 番号の保存場所や年度切り替えの設計を誤ると、重複や抜けが発生します。
- 誤送信対策を入れる: メール送信は自動化しすぎず、確認できる仕組みを残しておくと安全です。
- 属人化を避ける: 作り方をメモに残さないと、後で誰も直せなくなります。
- マスタ設計は最初が肝心: 項目の持たせ方を後から変えると、大きな作り直しになります。
外注する場合の費用目安
「学習コストをかけず、長く安定して使えるものを一度きちんと作りたい」という場合は外注も選択肢です。当サービスでは、請求書・見積書の自動化のような内容は2,500円〜を目安としています(作業量や難易度により変動します)。
| 内容 | 料金目安 |
|---|---|
| 請求書テンプレートの関数組み込み | 500円〜 |
| VBAでの発行・PDF出力・メール連携など | 2,500円〜 |
| マスタ連携を含む業務効率化ツール | 5,000円〜 |
上記はあくまで目安で、正式な料金は内容を確認のうえお見積もりします。詳しくは料金表をご覧ください。まずは相場感を知りたいだけでも無料相談・見積もりをご利用いただけます。データの転記そのものを減らしたい方は、関連記事の転記の自動化も参考になります。
まとめ
請求書のエクセル自動作成は、関数での半自動から、VBAでの1クリック発行・連番採番・PDF出力、Outlook連携でのメール送信、そして顧客マスタ・商品マスタとの連携まで、段階的に強化できます。月数件なら関数テンプレート、件数が多いならVBA、入力の手間まで減らしたいならマスタ連携、というのが大まかな選び方です。見積書の自動作成にも同じ考え方がそのまま使えます。「自分のケースはどこまでやれば良い?」と迷ったら、無理に判断せずご相談ください。運用に合わせて最適な形をご提案します。