図1:入力・マスタ・帳票を分離する設計例。実際の受注案件ではなく、説明用の概念図です。
Excelだけで始めるなら、この4手順
1. 発注一覧の列をそろえる。 1行に1つの明細を入れ、発注番号、仕入先コード、品目、数量、単価を列で持たせます。途中に見出し行や結合セルを混ぜない方が集計しやすくなります。
2. 取引先マスタを作る。 仕入先コードをキーにして、住所や正式名称を別シートへ登録します。ExcelのXLOOKUPなどで帳票側に表示させることができます(利用できる関数はExcelのバージョンに依存します)。
3. 発注書のレイアウトを固定する。 今使っている発注書をひな形にし、発注番号を指定すると宛名や明細が変わるように、数式や参照範囲を組みます。
4. 表示と印刷結果を確かめる。 空欄、長い商品名、明細が多いケースを試し、改ページと合計欄が崩れないか確認します。
発注書が少数で、担当者がExcelから選んで印刷すれば十分なら、この方法でも実用的です。マクロが不要な構成なら、社内での運用も比較的単純にできます。
取引先ごとにPDFを一括作成するなら、VBAなどを検討
月に数十件の発注書を作り、ファイル名を付けて保存するところまで繰り返しているなら、Excel VBAによる一括処理が候補になります。
処理の流れは、①出力対象の発注番号を抽出する、②仕入先別に明細をまとめる、③テンプレートに必要な値を入れる、④内容を検証する、⑤PDFを保存する、という形です。Excel VBAにはワークシートをPDFなどの固定形式へ出力する機能があります。
Excel以外のCSVが複数ある、仕入先ごとに様式が異なる、明細数によってページ数が大きく変わる場合には、Pythonなどでデータ整形と帳票生成を分ける設計も選択肢です。ただし、配布先のPC環境や保守方法まで含めて判断します。
Wordの差し込み印刷もExcelの情報を文書へ反映できます。ただし、発注書1枚に可変件数の明細を載せるような用途では、データの事前集約やレイアウトの工夫が必要です。宛名などの定型差し込みと、複数行の発注明細では難しさが異なります。
「PDFが出た」だけでは完成とはいえない
私が帳票作成で重要だと考えるのは、出力の速さよりも間違った発注書をそのまま発行しない仕組みです。最低限、次のような条件を決めておきます。
・ 未登録コード:仕入先や商品がマスタに見つからなければ、勝手に空欄で出さず「要確認」にする。
・ 数量・単価:空欄、文字列、ゼロ・マイナス値をどう扱うか決める。返品や値引きなど、例外がある場合は業務ルールに合わせる。
・ 発注番号:同じ番号に異なる仕入先が混在していないか、同じ明細が誤って二重登録されていないかを調べる。
・ 金額計算:端数処理、税区分、消費税の計算単位などを社内の運用と合わせる。
・ ファイル保存:同名PDFを上書きするか、発行履歴を残すか、承認前の発注書を発行できるかを決める。
取引先に送る直前の確認・承認は、人が行う設計で十分な場合もあります。最初からメール送信まで無人化する必要はありません。特に金額・納期・送信先は、誤りが取引に直結するためです。
どの方法が向いているか
Excelの関数・参照で十分なケースは、発注書の枚数が少なく、ひな形がほぼ固定で、PDF保存や送付を手作業で行っても問題ないときです。まず既存のExcelを整理するのが先決です。
VBAが向いているケースは、同じ形式の発注書を繰り返し作り、仕入先ごとの振り分けやファイル命名、一括PDF出力まで自動化したいときです。ただし、社内のマクロ実行ポリシーは事前に確認します。
Pythonや専用ツールを検討するケースは、入力元が複数、帳票が複数種類、データ量が多い、例外判定が複雑といったときです。単純な転記だけなら、開発規模を大きくする必要はありません。
外注するときは、帳票より「入力の実態」を伝える
「この発注書を自動で作ってほしい」と完成様式だけを送っても、作業範囲は決まりません。相談時には、可能な範囲で次の情報があると検討が早くなります。
・ 元になるExcel・CSVの列構成(機密情報を伏せたサンプルで構いません)
・ 現在使っている発注書の見本と、変更できないレイアウト
・ 1か月の作成枚数、1枚あたりの最大明細数、取引先別の様式の違い
・ Excelだけで使いたいか、PDF一括保存や承認前チェックも必要か
・ 利用するWindows・Excelの環境、マクロ利用の可否
仕様が明確な小規模・単機能の開発は10,000円からを基本としています。一方、複数様式への対応、複雑な税計算、外部サービス連携、承認フローなどは個別見積りです。購入前のココナラ内メッセージ相談は無料で、相談段階から実データを渡す必要はありません。
発注書の転記をなくす最短ルートは、必ずしも新しいシステムを導入することではありません。今あるExcelの入力を一度にまとめ、出力だけを自動化できるか。まずはその構造を確認することが、無駄の少ない業務改善につながります。