GASとGmailで請求書を自動送信!初心者向け解説
/ 初心者向け
GASとGmailで請求書を自動送信!
ビジネスにおいて、請求書の発行・送付は避けて通れない業務です。しかし、手作業で行うと時間もかかり、ミスも発生しやすくなります。そこで今回は、Google Apps Script (GAS) とGmailを連携させて、請求書を自動送信する方法をご紹介します。GAS初心者の方でも理解できるように、具体的なコード例を交えながら解説していきます。
なぜGASとGmailを使うのか?
- 無料: Googleアカウントがあれば、GASもGmailも無料で利用できます。
- 連携の容易さ: GASはGoogle Workspaceのサービスと親和性が高く、Gmailとの連携も簡単です。
- 自動化: 定型的な作業を自動化することで、業務効率を大幅に向上させることができます。
- カスタマイズ性: GASを使えば、送付するメールの内容やタイミングなどを柔軟にカスタマイズできます。
事前準備
1. Googleアカウント: Gmailを利用するために必要です。
2. Google スプレッドシート: 請求書データ(顧客名、金額、期日など)を管理するために使用します。
3. 請求書テンプレート (Google ドキュメントまたはスプレッドシート): 請求書のひな形を用意します。
実装手順
1. 請求書データの準備(Google スプレッドシート)
まず、請求書に関する情報をまとめたGoogleスプレッドシートを作成しましょう。以下のような列を用意します。
- 顧客名
- メールアドレス
- 請求金額
- 請求日
- 支払期日
- 請求書ファイル名(後述)
2. 請求書テンプレートの準備
Google ドキュメントまたはスプレッドシートで、請求書のテンプレートを作成します。テンプレート内には、スプレッドシートのデータを差し込めるように、カスタム変数(例: {{顧客名}}, {{請求金額}})を配置しておきます。GASからこのテンプレートをコピーし、データを差し込んで請求書PDFを生成します。
3. GASスクリプトの作成
Google スプレッドシートを開き、「拡張機能」>「Apps Script」を選択してスクリプトエディタを開きます。
以下のコードは、スプレッドシートのデータを元に請求書PDFを生成し、Gmailで送信する基本的な例です。
function sendInvoices() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getActiveSheet();
const dataRange = sheet.getDataRange();
const values = dataRange.getValues();
// ヘッダー行をスキップ
const header = values.shift();
for (let i = 0; i < values.length; i++) {
const row = values[i];
const customerName = row[0];
const emailAddress = row[1];
const amount = row[2];
const dueDate = row[4]; // 支払期日
const invoiceFileName = row[5]; // 請求書ファイル名
// 請求書PDFの生成
const invoiceBlob = generateInvoicePdf(customerName, amount, dueDate, invoiceFileName);
// メール送信
sendInvoiceEmail(emailAddress, customerName, invoiceBlob);
}
}
function generateInvoicePdf(customerName, amount, dueDate, invoiceFileName) {
// ここに請求書テンプレートからPDFを生成する処理を記述します。
// 例: Google ドキュメントテンプレートをコピーし、テキストを置換してPDFとして保存。
// 実際の実装は、テンプレートの形式や使用するサービスによって異なります。
Logger.log(`${customerName} 様の請求書PDFを生成します。`);
// ダミーのBlobを返します。実際には生成したPDFのBlobを返してください。
return Utilities.newBlob('This is a dummy invoice PDF content.', 'application/pdf', invoiceFileName + '.pdf');
}
function sendInvoiceEmail(recipient, customerName, invoiceBlob) {
const subject = `${customerName} 様 請求書のご送付`;
const body = `${customerName} 様
いつもお世話になっております。`;
GmailApp.sendEmail(recipient, subject, body, {
attachments: [invoiceBlob]
});
Logger.log(`${recipient} 様へ請求書を送信しました。`);
}
4. メール本文と件名のカスタマイズ
sendInvoiceEmail 関数内の subject と body を、必要に応じて変更してください。顧客名や請求内容などを動的に差し込むことも可能です。
5. トリガーの設定
スクリプトを自動実行するために、トリガーを設定します。スクリプトエディタの左側にある「時計」アイコンをクリックし、「トリガーを追加」を選択します。実行したい関数(例: sendInvoices)、実行するイベント(例: 時間主導型で毎日実行)などを設定します。
まとめ
GASとGmailを組み合わせることで、請求書発行・送付業務を劇的に効率化できます。今回ご紹介した内容は基本的なものですが、これをベースに、より高度な機能(エラーハンドリング、進捗管理など)を追加していくことも可能です。ぜひ、あなたのビジネスでもGASを活用して、業務改善に繋げてください!
---
GAS自動化の導入相談
請求書PDF作成、Gmail自動送信、Slack通知、スプレッドシート連携などを業務に合わせて実装できます。