解読レポート
— このブックのマクロが「何を・どの順で・どうしているか」の説明書 —
| 対象ブック | 請求書作成.xlsm(2026-06-01 お預かり版) |
|---|---|
| ご依頼内容 | 作成担当者の退職に伴う、マクロの内容の文書化(引き継ぎ用) |
| マクロの規模 | 標準モジュール2本+ブックモジュール1本/全コード 約420行(コメント・空行込み)/ボタン3個 |
| 作成日 | 2026-06-13 |
| 作業方法 | ブックは変更していません(コピーを読み取りのみで調査) |
1. このブックがやっていること(全体像)
このブックは、「受注一覧」シートに入力した受注データから、お客様ごとの請求書を作ってPDFで保存するためのものです。 請求書の見た目は「請求書テンプレ」シートで管理し、請求書番号や保存先などの設定は「設定」シートにまとまっています。
2. ボタンと処理の対応
| 操作(ボタン) | 動くマクロ | 起きること |
|---|---|---|
| 「選択した行の請求書を作成」 (受注一覧シート) |
CreateInvoiceSelected |
いま選択している1件の請求書PDFを作成し、保存先フォルダに保存。受注一覧の「発行日」列に日付が入る |
| 「今月分をまとめて作成」 (受注一覧シート) |
CreateInvoicesMonthly |
当月の「発行日が空欄」の行すべてについて、上と同じ処理を順番に実行 |
| 「発行済みの行を整理」 (受注一覧シート) |
ArchiveIssuedRows |
発行済みの行を「処理済み」シートの末尾に移動し、受注一覧から削除 |
| (ブックを開いたとき・自動) | Workbook_Open |
受注一覧の表示を当月分に絞り込む(データは消えていません。フィルタです) |
3. 処理の流れ(主要マクロ)
請求書の作成 CreateInvoiceSelected(メイン処理)
- 選択中の行が請求書を作れる行か確認(顧客名・金額が空ならメッセージを出して中止)
- 「設定」シートから次の請求書番号を取得(
NextInvoiceNo) - 「請求書テンプレ」シートに、顧客名・住所・明細・合計金額を転記
- テンプレシートをPDFとして出力(保存先:設定シートに書かれたフォルダ+「年月」フォルダ)
- 受注一覧の「発行日」列に今日の日付、「請求書No」列に発行した番号を記録
- 「設定」シートの請求書番号を1つ進める
まとめて作成 CreateInvoicesMonthly
- 受注一覧を上から順に見て、「当月」かつ「発行日が空欄」の行を探す
- 見つかった行ごとに、上の「請求書の作成」と同じ処理を実行
- 最後に「○件作成しました」と表示
発行済みの整理 ArchiveIssuedRows
- 発行日が入っている行をまとめて「処理済み」シートの末尾へコピー
- コピーが終わってから、受注一覧側の該当行を削除
4. 設定値 — 変えてよい場所/いけない場所
⭕ 変えてよい(運用で触る場所)
- 「設定」シート
B3:PDFの保存先フォルダ(例C:\請求書) - 「設定」シート
B4:自社名・振込先などの差し込み文言 - 「受注一覧」シートへの行の追加・入力(表の途中への列の挿入はNG・下記参照)
❌ 変えてはいけない(マクロが壊れる場所)
- シート名「受注一覧」「請求書テンプレ」「設定」「処理済み」(マクロが名前で参照しています)
- 受注一覧の列の並び順(A:受注日〜H:請求書No。列を挿入・削除すると転記がずれます)
- 「設定」シート
B2:次の請求書番号(手で書き換えると番号が重複します) - 請求書テンプレの転記先セル(
B5〜G20付近。レイアウト変更はマクロ修正とセットで)
5. 調査で気づいた点(ご参考)
⚠ 今は動いていますが、将来つまずきやすい箇所
- 保存先フォルダが存在しないとエラーで止まります(フォルダを自動作成する作りになっていません)。PC入れ替え時は「設定」シートB3の見直しが必要です
- 「まとめて作成」を同じ月に2回実行しても発行済みの行はスキップされますが、発行日を手で消すと同じ請求が再発行されます(重複防止は発行日欄だけが頼りです)
- 請求書番号は「設定」シートのB2だけで管理されています。このセルが壊れた場合に備え、処理済みシートの「請求書No」列が復元の手がかりになります
上記はいずれも現状のままでも運用可能です。改修をご希望の場合は別途お見積もりします。