Menu
Close

VBA(Excel)による請求書の自動作成・PDF保存の完全ガイド

目次

企業の経理担当者、請求書作成に興味がある個人事業主、フリーランスの方々必見!毎日事務作業で同じことを繰り返していませんか?その作業、ExcelのVBAで自動化できます。VBAの知識がなくて、無料で仕事の効率化を図れます。しかも、コードはほとんど変更する必要はありません。請求書作成の効率を大幅に向上させ、業務時間の短縮が可能になります。ぜひ、これらの手法を取り入れてみてください。

マクロとVBAとは?

Excelの「マクロ」と「VBA」という用語をよく聞くかもしれません。しかし、両者には重要な違いがあります。それぞれの役割や特徴を理解することは、効率的な業務の自動化に役立ちます。

マクロってなに?

マクロとは、Excelでの操作を自動化するための記録機能のことを指します。作業を一度だけ記録すると、その作業を再現できます。例えば、請求書の作成手順を一度マクロで記録しておけば、ボタン一つで同じ作業を自動で繰り返すことができるようになります。マクロは、簡単な自動化のツールとして初心者にとって便利な入り口です。

VBAってなに?

VBA(Visual Basic for Applications)とは、Excelを含むOfficeアプリケーションに組み込まれているプログラミング言語です。マクロで記録できる範囲を超えて、より複雑な自動化が可能になります。例えば、条件処理、複数のファイルの一括処理するなどの高度な操作を実行できます。Excelの標準機能では出来ないソリューションを作ることができ、効率化の幅が大きく広がります。

それぞれの違い

目的と範囲

マクロは特定の操作の自動化しかできないので、簡単な反復作業に適しています。一方、VBAはプログラミングを通じてExcelの操作を制御します。つまり、柔軟にカスタマイズでき、より広範な自動化と複雑な処理を可能にします。

使用の難易度

マクロの記録は、初心者でも簡単に行えるのが特徴です。操作を記録し、再生するだけで自動化できます。対して、VBAはプログラミングの知識が必要です。従ってある程度の学習コストがかかりますが、その分柔軟性と多機能性があります。

拡張性とカスタマイズ

マクロは基本的に記録された操作のみを再現するのに対し、VBAは条件分岐やループなどの論理的な処理を組み込むことで、ユーザー独自の高度なカスタマイズを可能にします。具体的には、特定の条件に応じて処理内容を変更することができます。

マクロとVBAのどちらを使うべきかは、ユーザーのスキルや目的によって異なります。初心者でまずは簡単な作業を自動化したい場合はマクロを使いましょう。一方で、複雑な業務プロセスを自動化したい場合や、特定の条件で異なる処理をしたい場合には、VBAを学ぶことが有効です。

請求書作成の重要性


ビジネスにおいて請求書の作成は、ただの事務作業に見えるかもしれません。しかし、実際には経営の核心に関わる重要なプロセスです。請求書の作成は、正確な取引の証明だけでなく、キャッシュフローの健全な管理や法的要件への対応にも直結しています。ここでは、VBA(Visual Basic for Applications)を用いた請求書自動作成の重要性を、以下の3つのポイントで具体的に説明します。

1.正確さと信頼性の確保

請求書は、取引の証拠となる重要な文書です。正確な請求書が発行されることは、顧客との信頼関係を築くために不可欠です。手動で請求書を作成すると、入力ミスや計算間違いが発生するリスクがあります。これにより、顧客からのクレームや支払い遅延が生じる可能性があります。

VBAを使った請求書の自動作成は、このリスクを大幅に軽減します。VBAでは、請求書のフォーマットを準備しておくことで、データ入力ミスや計算ミスを防ぐことができます。これにより、請求書の正確さが保証され、ビジネスの信頼性も向上します。

2.キャッシュフローの改善

キャッシュフローは、企業の運営において最も重要な要素の一つです。請求書の発行から実際の支払いまでのプロセスは、キャッシュフローに大きな影響を及ぼします。請求書が迅速かつ正確に発行されると、顧客に対しても支払いを促すことができ、資金繰りを安定させることができます。

VBAでは請求書作成のプロセスを自動化し、手動作業のコストを削減できます。さらに定期的に請求書を発行すると、収益の予測精度を高め、計画的なキャッシュフロー管理が可能になります。これにより、資金不足や遅延といったリスクを最小限に抑えることができます。

 3.法的要件への対応

請求書は、税務処理や法的な要求に対応するために必要な文書です。請求書には取引の詳細、税金、法的に必要な情報が含める必要があります。要件を満たした請求書は、企業が法的トラブルを避けるために重要です。

VBAを活用すると、最新の法的要求に即した請求書を生成することができます。以下で紹介する請求書フォーマットはインボイス制度に対応しています。これにより、税務調査や法的な監査においても安心して対応することができます。

VBAによる請求書作成自動化のメリット6選

1.手作業の削減と効率化

VBAを使用すると、手作業で行っていた入力や計算を自動化できます。VBAで自動化することで、時間と労力を大幅に削減し負担を軽減します。

2.ミスの防止と精度の向上

手作業での入力ミスを防ぐために、VBAを使用して一貫性のあるデータ処理を行えます。特に、大量のデータを扱う場合には、VBAの自動化機能によりエラー率が劇的に減少します。

3.スピードと一貫性の向上

請求書の作成から送付までの一連のプロセスを自動化することで、手作業では実現できないスピードと一貫性を実現します。これにより、複数の請求書を一度に発行する際の効率が格段に向上します。

4.柔軟なカスタマイズが可能

VBAでは、個々のビジネスニーズに応じて請求書のフォーマットや内容を自由にカスタマイズできます。特定の顧客向けに異なるテンプレートを自動で使用するよう設定することも可能です。

5.再利用性の向上

一度VBAコードを設定すれば、その後は同じコードを再利用するだけで繰り返し自動作成ができます。これにより、初期設定にかかる時間とコストを取り戻し、長期的にはコスト削減が実現します。

6.拡張性と他のシステムとの連携

VBAはExcelだけでなく、他のMicrosoft Officeアプリケーション(Word、Outlookなど)と連携が可能です。これにより、請求書作成後の自動送付や、別のファイル形式での保存など、さらなるプロセスの自動化も実現できます。

VBAによる請求書の自動化は、単なる作業効率の向上に留まらず、ミスの削減、迅速な処理、カスタマイズの柔軟性など、多くのメリットをもたらします。請求書作成のプロセスを見直し、自動化することで、ビジネスをさらに成長させることができます。ぜひ、VBAを活用して、業務の自動化に取り組んでみてください。

請求書と納品書をExcelで連動する方法を解説!インボイス制度対応

3種類の請求書作成方法

請求書作成方法には、大きく分けて以下の3つの方法があります。それぞれの方法について詳しく見ていきましょう。

VBAを使って作成する

VBAは、Excelの操作を自動化するプログラミング言語です。これを活用することで、請求書の作成から送付までの一連のプロセスを効率化できます。作成方法は次の章で詳しく解説していきます。

Excel関数を使って作成する

Excelの関数を使った方法は、プログラミングの知識が不要で、VBAよりも手軽に自動化を始められるのが特徴です。関数を用いることで、計算やデータの入力を効率化し、手動での作業を最小限に抑えることができます。初心者や簡単な操作を求める場合はExcel関数を使った方法が手軽です。
テンプレートが完成したら、「名前を付けて保存」でExcelファイルをテンプレート形式(.xltx)で保存しましょう。これにより、毎回同じテンプレートを使って請求書を新規作成でき、データ入力の手間を省くことができます。

請求書と納品書をExcelで連動する方法を解説!インボイス制度対応

請求書作成ソフトを用いて作成する

請求書作成ソフトは、請求書の自動作成を専門にサポートするツールで、Excelよりもさらに効率的に請求書を作成できます。これらのソフトは直感的な操作が可能で、以下のような特徴があります。

使いやすいインターフェース

専用ソフトはユーザーインターフェースが直感的で、テンプレートの選択やカスタマイズが簡単に行えます。データの入力もスムーズで、請求書の見栄えやフォーマットも自由に調整できます。

自動化機能の強化

請求書作成ソフトには、定期的な請求書の発行や、顧客データベースとの連携など、高度な自動化機能が備わっています。これにより、請求書作成の手間を大幅に削減できるだけでなく、エラーのリスクも最小限に抑えることができます。

法的要件への対応

多くの請求書作成ソフトは、法的な要件や税制に合わせたフォーマットや計算式があらかじめ組み込まれているため、法令遵守が容易になります。これにより、税務調査や監査の際にも安心です。

【2025年】請求書作成ソフト31選を紹介|Excelとの違いと選定ポイントを解説

「請求書作成ソフト」の製品比較表

※税込と表記されている場合を除き、全て税抜価格を記載しています

  • 製品名
  • 料金プラン
  • プラン名金額
  • 無料トライアル
  • 最低利用期間
  • 基本的な機能
    • 郵送代行
    • 見積書作成
    • 請求書自動作成
    • 売上レポート作成
    • 検収書作成
    • 領収書作成
    • 納品書作成
    • 注文請書作成
    • 完全無料ソフト
    • マルチデバイス対応
    • WEB発行
    • インボイス対応
    • カード決済対応
    • 電子帳簿保存法対応
    • 口座連携
    • 適格請求書作成
    • 外貨対応
    • ロゴ・印影の登録
    • PDF出力
    • 時間指定作成予約
  • サービス資料
  • 無料ダウンロード
  • ソフト種別
  • サポート
初期費用 要相談
料金 要相談
制限なし
intra-mart Procurement Cloud 請求書受取・支払管理の資料サムネイル
クラウド型ソフト 
電話 / メール / チャット /
初期費用 要相談
料金 要相談
制限なし
intra-mart Procurement Cloud 請求書発行・債権管理の資料サムネイル
クラウド型ソフト 
電話 / メール / チャット /
ライトプラン 990円(税込)/月
備考
※5名以下でのご利用
個人事業主様におすすめ
◎詳細
・お支払い方法 :クレジットカード
・データ保存期間:無制限
・ユーザー数上限:5
ミドルプラン 1,320円(税込)/月
備考
※6名以上でのご利用
法人様におすすめ
◎詳細
・お支払い方法 :クレジットカード
・データ保存期間:無制限
・ユーザー数上限:無制限
スタンダードプラン 1,980円(税込)/月
備考
※大人数でのご利用
独自帳票をご利用の方
◎詳細
・お支払い方法 :クレジットカード
・データ保存期間:無制限
・ユーザー数上限:無制限
・独自帳票:対応
・不正ログインロック:対応
・2重ログイン警告:対応
1カ月
クラウド型ソフト 
電話 / メール / チャット /
初期費用 0円
備考
初期費用は発生しません。
Personal 980円/月額
備考
利用可能人数 1名
メール送信元 固定
外部ファイル保管 ×
捺印申請 ×
通知機能 一部
データロック ×
対象 個人(法人不可)
Basic 1,980円/月額
備考
利用可能人数 3名
メール送信元 変更可
外部ファイル保管 1GB
捺印申請 〇
通知機能 〇
データロック 〇
対象 法人(個人可)
Standard 3,980円/月額
備考
利用可能人数 15名
メール送信元 変更可
外部ファイル保管 5GB
捺印申請 〇
通知機能 〇
データロック 〇
対象 法人(個人可)
Premium 5,980円/月額
備考
利用可能人数 50名
メール送信元 変更可
外部ファイル保管 10GB
捺印申請 〇
通知機能 〇
データロック 〇
対象 法人(個人可)
1か月
クラウド型ソフト 
電話 / メール / チャット /
パーソナルミニ 900円/月~
備考
※副業などで
確定申告をする必要のある方向け
◎機能
・AI OCRから入力:上限5件/月
・請求書の郵送:200円/1通
・取引先の登録数:15件まで
パーソナル 1,280円/月~
備考
※自営業、個人事業主として
確定申告をする必要のある方向け
◎機能
・AI OCRから入力:月6件以上の時20円/1件
・消費税集計:〇
・消費税申告書の作成:〇
・請求書の郵送:200円/1通
・取引先の登録数:無制限
パーソナルプラス 2,980円/月~
備考
※確定申告の操作が不安で
電話サポートを受けたい方
◎機能
・AI OCRから入力:月6件以上の時20円/1件
・消費税集計:〇
・消費税申告書の作成:〇
・請求書の郵送:200円/1通
・取引先の登録数:無制限
スモールビジネス 2,980円/月~
備考
※部門管理が不要な企業や、請求業務の少ない小規模事業者向けプラン
◎機能
・請求書の郵送:190円/1通
・部門登録:2部門まで
・AI OCRから入力:上限5件/月
ビジネス 4,980円/月~
備考
※バックオフィス業務全般を効率化したい、中小企業向けプラン
・請求書の郵送:180円/1通
・一括郵送・メール送信:〇
・部門登録:無制限
・AI OCRから入力:月6件以上の時20円/1件
中堅・上場企業向け 要問合せ
1カ月
クラウド型ソフト 
電話 / メール / チャット /
年間利用料 84,000円~
備考
※契約は法人単位で年間契約です。
◎特徴
・スペック契約発効数(年間):600
・管理者ライセンス:1
グループ企業プラン 要問合せ
1年
クラウド型ソフト 
電話 / メール / チャット /
初期費用 要問合せ
備考
※環境構築や導入後のサポートのための費用
月額費用 要問合せ
備考
※「請求書の送付リンク数」によってプランが分かれているので、問い合わせてください。
※「ユーザー数」や「請求書の保存数」に制限はありません。
1カ月
クラウド型ソフト 
電話 / メール / チャット /
料金プラン 要問合せ
制限なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 要相談
利用料金 要相談
制限なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 0円
備考
初期費用はかかりません。
フリー 0円
なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 0円
備考
初期費用はかかりません。
フリー 0円
備考
すばやい​支払い回収を​サポートする​機能が​満載。​請求書、​見積もりの​作成・送信は​無制限で、​しかも​無料です。
◎機能:
①請求書、​見積もりの​作成・送信​(無制限)
②ユーザーの​上限数なし
③送信先​(顧客)の​上限数なし
④どこからでも​アクセス可能
⑤メールや​SMSで​送信、​または​リンクを​コピー&ペーストで​共有
⑥支払いを​24時間年中無休で​受け付け
プラス 3000円/月
備考
日々の​業務と​請求業務の​一本化を​希望する、​成長中の​事業向け。​作業の​時間短縮を​サポートする​高度な​機能を​搭載しています。
◎機能:
①無料プランのすべての機能
②複数パターンの​見積もりで​選択肢を​一度に​提供
③承諾された​見積もりを​請求書に​自動変換
④マイルストーンに​基づく​支払いスケジュールを​作成
⑤請求書の​カスタムテンプレートを​保存して、​次回以降に​再利用
⑥請求書に​カスタムフィールドを​追加
⑦ワークスペースで​関連ファイルを​整理整頓
⑧プロジェクトの​ファイルと​ステータスを​お客さまと​共有
⑨進行中または​完了した​プロジェクトを​追跡
⑩請求書の​カスタムレイアウトを​選択
⑪請求書と​見積もりの​名前を​編集
⑫契約書に​カスタムフィールドを​追加
制限なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 0円
料金 0円
なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 0円
備考
初期費用は発生しません。
無料プラン 0円
備考
※無料でサクッと請求書発行・送付
◎機能
・帳票の発行(個別)請求書/見積書/納品書/発注書/領収書:〇
・帳票の変換:〇
・定期請求/自動作成:1件まで
・ユーザー追加:1~3人まで
スタンダードプラン 1,980円(税抜)/月
備考
※大量の請求書発行・送付
※送信料金(年払い):4,750円(税抜)/月~
◎機能
・帳票の発行(個別)請求書/見積書/納品書/発注書/領収書:〇
・帳票の変換:〇
・帳票のメール送付・郵送代行:〇
・帳票の一括発行:〇
・合算請求/分割請求:〇
・定期請求/自動作成:無制限
・ユーザー追加:無制限
アドバンスプラン 10,000円(税抜)/月
備考
※大量の請求書発行・送付や債権管理・入金消込・仕訳作成を行う方向け
※送信料金(年払い):4,750円(税抜)/月~
◎機能
・帳票の発行(個別)請求書/見積書/納品書/発注書/領収書:〇
・帳票の変換:〇
・帳票のメール送付・郵送代行:〇
・帳票の一括発行:〇
・合算請求/分割請求:〇
・定期請求/自動作成:無制限
・入金明細の取得(自動):〇
・債権管理・入金消込(自動):〇
・仕訳の作成(自動):〇
・ユーザー追加:無制限
制限なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 0円
備考
初期費用は発生しません。
利用料金 55,000円~/月額
制限なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 0円
備考
初期費用は発生しません。
セルフプラン 5,200円/年額
備考
1年間無料です。
ベーシックプラン 11,500円/年額
備考
1年間半額です。
トータルプラン 21,600円/年額
備考
1年間半額です。
制限なし
パッケージ型ソフト 
電話 / メール / チャット /
初期費用 0円
備考
初期費用は発生しません。
スタンダードプラン 2,000円/月額
備考
利用人数:4ユーザー
◎機能
・対応帳票:概算見積書、見積書、納品書、請求書、合計請求書、領収書、入金伝票
・メール・リンクによる帳票の送付:〇
・売掛金集計管理:〇
・帳票ステータス管理:〇
・得意先リスト:〇
・印刷テンプレート:〇
・Slack承認:〇
プロフェッショナルプラン 4,000円/月額
備考
利用人数:4ユーザー
◎機能
・対応帳票:概算見積書、見積書、納品書、請求書、合計請求書、領収書、入金伝票
・メール・リンクによる帳票の送付:〇
・売掛金集計管理:〇
・帳票ステータス管理:〇
・得意先リスト:〇
・印刷テンプレート:〇
・Slack承認:〇
・金融機関連携:〇
・入金消込:〇
制限なし
クラウド型ソフト 
電話 / メール / チャット /
従業員100名以下 0円
備考
従業員100名以下の場合、初期費用、月額費用ともに無料となります。
従業員101名~ 要相談
制限なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 0円
備考
初期費用は発生しません。
月額費用 30,000円~/月額
備考
請求書の処理件数により価格は変動します。
1年
クラウド型ソフト 
電話 / メール / チャット /
初期費用 0円
備考
初期費用は発生しません。
基本料金 0円/月額
備考
ユーザー5人まで
請求書の発行枚数月50枚まで
インターネットバンキングの明細取得30回まで

【上記以上は従量課金】
月額500円/1ユーザー
30円/請求書発行1枚
300円/30回明細取得
制限なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 0円
備考
初期費用は発生しません。
スタンダードプラン 550円/月額(税込)
備考
フリーランスや個人事業主など、一人で全ての業務を行っている方にオススメ
プロプラン 1,100円/月額(税込)
備考
中小規模の事業体で、複数人で利用する企業の方にオススメ
制限なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 0円
備考
初期費用は発生しません。
月額利用料 0円/月額
制限なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 0円
備考
初期費用は発生しません。
フリー 0円
備考
1人で請求管理をはじめたい企業向けプランです。
スタンダード 4,980円/月額
備考
請求管理を効率的にしたい企業向けプランです。
プレミアム 29,800円/月額
備考
充実のサポートとセキュリティで安心して使いたい企業向けプランです。
制限なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 0円
Freeプラン 0円
備考
まずは1人で請求管理をはじめる方向けです。
Standardプラン 980 円/月額(税込)
備考
請求管理や入出金管理の効率化をしたい方向けです。
制限なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 0円
備考
初期費用は発生しません。
無料プラン* 0円
プラン15 8,000円/年額
プラン100 30,000円/年額
プラン1000 100,000円/年額
制限なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用(受取りタイプ) 150,000円
備考
オリジナルフォーマットの場合は
300,000円~
Aプラン(受取りタイプ) 10,000円/月額
備考
受取50通まで
51通~ 100円/通
Bプラン(受取りタイプ) 50,000円/月額
備考
受取500通まで
501通~ 80円/通
初期費用(発行タイプ) 150,000円
Cプラン(発行タイプ) 5,000円/月額
備考
発行100通まで
101通~500通 45円/通
Dプラン(発行タイプ) 22,500円/月額
備考
発行500通まで
501通~ 40円/通
制限なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 要相談
月額利用料 35,200円~(税込)/月額
制限なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 0円
備考
初期費用は発生しません。
パーソナルミニ 800円/月額
備考
副業などで確定申告をする必要のある方向けのプランです。
パーソナル 980円/月額
備考
自営業、個人事業主として
確定申告をする必要のある方向けのプランです。
パーソナルプラス 2,980円/月額
備考
確定申告の操作が不安で
電話サポートを受けたい方向けのプランです。
スモールビジネス 2,980円/月額
備考
部門管理が不要な企業や、請求業務の少ない小規模事業者向けプランです。
ビジネス 4,980円/月額
備考
バックオフィス業務全般を効率化したい、中小企業向けプランです。
IPO準備・中堅〜上場企業向け 要相談
1か月
クラウド型ソフト 
電話 / メール / チャット /
初期費用 100,000円~
備考
問合わせ後にヒアリング
月額基本料 20,000円~/月額
備考
問合わせ後にヒアリング
制限なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 0円
無料プラン 0円/月額
備考
ユーザー数:1人
取引先:3社
送付通数:無制限
対応書類:見積書・請求書
電子帳簿保存法対応:×
承認フロー:×
個人プラン 600円/1ユーザー/月額
備考
ユーザー数:3人
取引先:10社
送付通数:無制限
対応書類:すべて
電子帳簿保存法対応:〇
承認フロー:×
法人プラン 1,000円/1ユーザー/月額
備考
ユーザー数:従量課金制
取引先:従量課金制
送付通数:無制限
対応書類:すべて
電子帳簿保存法対応:〇
承認フロー:〇
エンタープライズプラン 30,000円/1社/月額
備考
ユーザー数:無制限
取引先:無制限
送付通数:300件/月まで無料
対応書類:すべて
電子帳簿保存法対応:〇
承認フロー:〇
制限なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 要相談
利用料金 要相談
制限なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 100,000円~
利用料金 25,000円~/月額
制限なし
クラウド型ソフト 
電話 / メール / チャット /
初期費用 要相談
備考
初期費用は発生しません。
フリープラン 0円/月額
備考
顧客登録数:5件
請求書・見積書保存数 無制限
制限なし
クラウド型ソフト 
電話 / メール / チャット /

価格や製品機能など、見やすい一覧表から、気になる製品をまとめてチェック!

VBAによる請求書の自動作成

請求書作成に必要なデータをまとめた台帳を作成する

2023年10月にインボイス制度が始まり、適格請求書の作成が法律で定められました。具体的には、取引先の社名、担当者名、住所、請求する商品名やサービスの価格、数量、支払総額、支払期限、請求書番号などを記載する必要があります。請求書番号はそれぞれの請求書に着ける番号で、一つ一つが独自の番号を持ちます。したがって被ることがないように注意しましょう。
(参照:インボイス制度の概要)
これらのデータを事前にまとめた台帳をExcelで作成しておきましょう。以下はその例です。

VBA台帳

請求書テンプレートを準備する

請求書は基本的に会社ごとで異なります。ロゴ・印影などを登録したい場合は、請求書作成ソフトを活用しましょう。自社独自の請求書を作成したい場合も請求書作成ソフトを活用しましょう。

特にこだわりがない場合は以下で紹介する請求書テンプレートを活用しましょう。以下は請求書テンプレートの例ですので参考にしてみてください。

VBA請求書テンプレート
(参照:請求書と納品書をExcelで連動する方法を解説!インボイス制度対応

Excelの開発者タブを有効にする

VBAのコードを書けるようにするためには、Excelの保存形態を「Excelマクロ有効ブック(*.xlsm)」に変更しましょう。

VBAExcelマクロ有効ブック

に、VBAを使用するために「開発者タブ」を有効にしましょう。エクセルのメニューから「ファイル」→「オプション」→「リボンのユーザー設定」の順に進み、「開発」にチェックを入れましょう。

VBAリボンのユーザー設定

すると「開発」タブが表示されます。「開発」タブの中の「マクロの記録」と「Visual Basic」をよく使用します。マクロの記録はマクロで請求書を作りたい人が主に使用し、Visual BasicはVBAでコードを書くために使用します。

VBA

「Visual Basic」ボタンをクリックしてVBAエディタを開きます。ここで新しいモジュールを追加し、以下のようにVBAコードを記述します。VBA標準モジュール

※このコードは一例です。

Visual Basicにコードを記入する

請求書の自動作成は、台帳の情報を請求書テンプレートに移す必要があります。以下のコードをVisual Basicの「標準モジュール」の中に入力しましょう。

Sub CreateInvoice()

    Dim ledgerSheet As Worksheet

    Dim invoiceTemplete As Worksheet

    Dim invoiceSheet As Worksheet

    Dim lastRow As Long

    Dim invoiceNo As String

    Dim Data As String

    Dim Item As String

    Dim volume As String

    Dim unitPrice As String

    Dim subject As String

    Dim dueDate As String

    Dim payee As String

    Dim companyName As String

    Dim postalCode As String

    Dim address As String

    Dim phoneNumber As String

    Dim contactPerson As String

    Dim lastCell As String

    ‘for文のために変数を設定

    Dim i As Long

       

    ‘ 台帳シートを設定

    Set ledgerSheet = ThisWorkbook.Sheets(“台帳”)

    ‘ 請求書テンプレートシートを設定

    Set invoiceTemplete = ThisWorkbook.Sheets(“請求書テンプレート”)

 

     ‘ 台帳シートの最後の行列番号を取得

    lastRow = ledgerSheet.Cells(Rows.Count, 2).End(xlUp).Row

    lastCell = ledgerSheet.Range(“B” & lastRow).Value

    ‘ 台帳シートの3行目~最終行までコードを回す

        For i = 3 To lastRow

   

    ‘ 請求書テンプレートのシートをコピーして作成

     ThisWorkbook.Sheets(“請求書テンプレート”).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)

     Set invoiceSheet = ActiveSheet

    ‘ 請求書のシート名をNoに変更

    invoiceNo = ThisWorkbook.Sheets(“台帳”).Range(“B” & i).Value

    invoiceSheet.Name = invoiceNo

       

    ‘ 台帳シートから必要な情報を取得

    invoiceNo = ledgerSheet.Range(“B” & i).Value    ‘請求書Noをコピー

    Data = ledgerSheet.Range(“C” & i).Value         ‘日付をコピー

    Item = ledgerSheet.Range(“D” & i).Value         ‘項目をコピー

    volume = ledgerSheet.Range(“E” & i).Value       ‘数量をコピー

    unitPrice = ledgerSheet.Range(“F” & i).Value    ‘単価をコピー

    subject = ledgerSheet.Range(“G” & i).Value      ‘件名をコピー

    dueDate = ledgerSheet.Range(“H” & i).Value      ‘支払期限をコピー

    payee = ledgerSheet.Range(“I” & i).Value        ‘振込先をコピー

    companyName = ledgerSheet.Range(“J” & i).Value  ‘会社名をコピー

    postalCode = ledgerSheet.Range(“K” & i).Value   ‘郵便番号をコピー

    address = ledgerSheet.Range(“L” & i).Value      ‘住所をコピー

    phoneNumber = ledgerSheet.Range(“M” & i).Value  ‘電話番号をコピー

    contactPerson = ledgerSheet.Range(“N” & i).Value ‘担当者をコピー

   

       ‘ 請求書に情報を入力

    invoiceSheet.Range(“H4”).Value = invoiceNo

    invoiceSheet.Range(“A16”).Value = Data

    invoiceSheet.Range(“B16”).Value = Item

    invoiceSheet.Range(“E16”).Value = volume

    invoiceSheet.Range(“G16”).Value = unitPrice

    invoiceSheet.Range(“B5”).Value = subject

    invoiceSheet.Range(“B9”).Value = amount

    invoiceSheet.Range(“B10”).Value = dueDate

    invoiceSheet.Range(“B11”).Value = payee

    invoiceSheet.Range(“B4”).Value = companyName

    invoiceSheet.Range(“F9”).Value = postalCode

    invoiceSheet.Range(“F10”).Value = address

    invoiceSheet.Range(“F11”).Value = phoneNumber

    invoiceSheet.Range(“F12”).Value = contactPerson

   

    ‘ 台帳シートの作成日に請求書の作成日を設定

 ‘   ledgerSheet.Range(“C” & lastRow + 1).Value = Date

    ‘ メッセージを表示

    MsgBox “請求書が作成されました。”

  Next i

End Sub

このコードで台帳から請求書を作成すると以下のような請求書が自動で完成します。

請求書作成例

※請求書発行日は”H5”に記入しましょう。

請求書をPDF形式で保存する方法

Visual Basicにコードを記入する

Sub SaveInvoiceAsPDF()

    Dim invoiceSheet As Worksheet

    Dim invoiceDate As Date

    Dim yearFolder As String

    Dim monthFolder As String

    Dim savePath As String

    Dim pdfFileName As String

    Dim ledgerSheet As Worksheet

    Dim lastRow As Long

    ‘ 請求書のシートを設定

    Set invoiceSheet = ThisWorkbook.ActiveSheet

    ‘ 請求書の作成日を取得

    invoiceDate = invoiceSheet.Range(“H5”).Value

    ‘ 保存先のパスを作成

    yearFolder = Format(invoiceDate, “yyyy”)

    monthFolder = Format(invoiceDate, “mm”)

    savePath = ThisWorkbook.Path & “\” & yearFolder & “\” & monthFolder

    ‘ 保存先のフォルダが存在しない場合は作成

    If Not FolderExists(savePath) Then

        On Error Resume Next

        MkDir savePath

        On Error GoTo 0

    End If

    ‘ PDFファイル名を作成

    pdfFileName = savePath & “\” & invoiceSheet.Name & “.pdf”

     ‘ 上書き確認のメッセージを表示

    If MsgBox(“Excelファイルを上書き保存しますか?”, vbQuestion + vbYesNo) = vbYes Then

        ‘ PDFファイルとして保存

        invoiceSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfFileName, Quality:=xlQualityStandard

        MsgBox “PDFファイルが保存されました。”

        ‘ 台帳シートにPDFファイルのリンクを記録

        Set ledgerSheet = ThisWorkbook.Sheets(“台帳”)

        lastRow = ledgerSheet.Cells(Rows.Count, 3).End(xlUp).Row

  ‘      ledgerSheet.Range(“L” & lastRow).Value = “●”

        ledgerSheet.Hyperlinks.Add Anchor:=ledgerSheet.Range(“L” & lastRow), address:=pdfFileName, TextToDisplay:=”●”

        Sheets(“台帳”).Select

    End If

End Sub

 

Function FolderExists(folderPath As String) As Boolean

    Dim folder As Object

    On Error Resume Next

    Set folder = CreateObject(“Scripting.FileSystemObject”).GetFolder(folderPath)

    On Error GoTo 0

    FolderExists = Not folder Is Nothing

End Function

ボタンを挿入し、より効率化する方法

上記のコードをVisual Basicに記入すると、請求書作成やPDF保存が可能になります。しかし、毎度毎度Visual Basicを開くのは面倒ですよね。ボタンをシートに置き、ボタンを押すだけで自動作成やPDF保存をできるようにしませんか?

<注意!>ボタンを挿入したいシートを開きながら、以下の操作を行ってください。

「開発」タブを押し、その中の「挿入」の下矢印を押します。すると「フォームコントロール」の中に「ボタン」があります。「ボタン」のイラストを押すと、ボタンのサイズを決められるので、カーソルで自由にサイズを決めましょう。サイズを決めると、「マクロの登録」が出てきます。マクロ名の候補に「CreateInvoice」、「Save Invoice As PDF」があります。

請求書の台帳シートには「CreateInvoice」、請求書テンプレートのシートには「Save Invoice As PDF」のボタンを挿入しましょう。すると、以下のようにボタンが挿入されます。ボタンを押すと、「請求書を作成されました」や「Excelファイルを上書き保存しますか?」と出るようになります。

PDFで保存する際の注意点

過去にさかのぼって請求書を確認できるように管理するためには、

  • 月ごとにフォルダを作成して保存する
  • 請求書は上書き保存ではなく新規作成する

必要があります。今回のコードでは、請求年のファイルが作成され、その中で月ごとのファイルが作成されます。さらに該当する月のファイルを開くと、請求書番号ごとにPDF化された請求書が保存されるような仕組みになっています。

保存した請求書を管理する際には以下の記事を参考にしてみて下さい!

請求書管理をエクセルで行う方法とは?準備から作成方法まで解説

VBAによる自動化で効率的な請求書作成を実現しませんか?

VBAを使うと、請求書作成の自動化やPDF保存が簡単にでき、ビジネスの生産性を大幅に向上させます。単なる業務効率化の手段にとどまらず、ビジネス全体の生産性を向上させる強力なツールです。自動化を進めることで、時間と労力を大幅に節約し、人為的ミスのリスクも最小限に抑えることができます。請求書作成にVBAを活用し、ビジネスの成長への一歩を踏み出しましょう。

VBAの導入に不安がある方も簡単なコードをコピーして使うだけなので、ぜひこのガイドを参考にして効率化しましょう!

目次

おすすめ比較一覧から、
最適な製品をみつける

カテゴリーから、IT製品の比較検索ができます。
1825件の製品から、ソフトウェア・ビジネスツール・クラウドサービス・SaaSなどをご紹介します。

すべてみる