
この記事でできること
毎月、取引先ごとに請求書をコピーして、宛名と金額を書き換えて、PDFにして保存する。この作業を、Googleスプレッドシートのボタン1回で終わらせる方法を紹介します。
使うのは、Googleスプレッドシートと、その中で動く Google Apps Script(GAS)だけです。追加の料金はかかりません。
- 取引先の一覧から、1社ずつ請求書のPDFを作る
- PDFは「2026年10月_請求書_〇〇商店.pdf」のような名前で、Googleドライブのフォルダにまとめて保存
- 取引先が40社でも、待つのは数分
用意するシート
スプレッドシートに、シートを2枚つくります。
1枚目「請求先」
1行目は見出し、2行目から取引先を1社1行で書きます。
| A:会社名 | B:品目 | C:数量 | D:単価 |
|---|---|---|---|
| 〇〇商店 | 10月分 配送業務 | 1 | 120000 |
| △△食堂 | 10月分 システム保守 | 1 | 15000 |
2枚目「請求書」
印刷したときの見た目どおりに、請求書のひな形を作ります。この記事のコードでは、次のセルに値を入れる前提です(場所はあとで自由に変えられます)。
| セル | 入るもの |
|---|---|
| B3 | 宛名(〇〇商店 御中) |
| F2 | 発行日 |
| B8 | 品目 |
| D8 | 数量 |
| E8 | 単価 |
| F8 | 金額(=D8*E8 の式を入れておく) |
小計・消費税・合計も、F8 を使った式にしておけば自動で計算されます。
保存先のフォルダを決める
Googleドライブに「請求書」などのフォルダを作り、開いたときのURLの最後の部分(folders/ のあと)をコピーしておきます。これがフォルダIDです。
スクリプトを貼る
スプレッドシートの「拡張機能 → Apps Script」を開き、次のコードを貼り付けます。1行目の FOLDER_ID だけ、さきほどのフォルダIDに書き換えてください。
動かしてみる
- Apps Script の画面で
makeInvoicesを選んで「実行」を押します。 - 初回だけ「承認が必要です」と出るので、自分のGoogleアカウントを選んで許可します(スプレッドシートとドライブを読み書きするための許可です)。
- フォルダを開くと、取引先の数だけPDFが並んでいます。
2回目からは、スプレッドシートを開き直すと上のメニューに「請求書 → 今月の請求書を作る」が出るので、そこから押すだけです。
つまずきやすいところ
- PDFの中身が前の会社のままになる:
SpreadsheetApp.flush()を消すと起こります。値を書き込んでからPDFにする前に必ず入れてください。 - 途中で止まる(429エラー):PDFの書き出しを短い間隔で続けると、Google側の制限にかかります。
Utilities.sleepの待ち時間を長くしてください。 - 6分で止まる:GASは1回の実行が6分までです。取引先がとても多いときは、何回かに分けて動かす作りにします。
- セルの場所が違う:ひな形のレイアウトを変えたら、コードの
B3F8などもそろえて書き換えます。
ここから広げられること
- 作ったPDFを、取引先ごとのメールアドレスへ自動で送る(
GmailApp.sendEmailに添付) - 品目を複数行にする、源泉徴収の行を足す
- 入金があったら一覧に「入金済み」と付ける
この記事は、テマヘラシの原が書きました。請求書のほか、給与の計算、シフト表、日報アプリなど、お店や会社のやり方に合わせた仕組みを作っています。「うちの場合はどうなる?」というご相談は無料で承っています。