請求書をPDF化し、客先別に下書きメールを作成する方法を紹介します。

サンプルをダウンロードしてください。
PDF化とメールの下書き
請求書の作成

シート「請求書」を作成し、詳細を記入します。
GASの記入

コピペでOKです。
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('請求書処理')
.addItem('請求書PDF作成&メール送信', 'createInvoicePdfAndSendEmail')
.addToUi();
}
function createInvoicePdfAndSendEmail() {
// ①PDFに変換
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('請求書'); // シート「請求書」を指定
var sheetId = sheet.getSheetId();
var url = ss.getUrl().replace(/edit$/, '');
var url_ext = 'export?exportFormat=pdf&format=pdf' +
'&gid=' + sheetId;
var options = {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken(),
}
};
var response = UrlFetchApp.fetch(url + url_ext, options);
var blob = response.getBlob().setName(sheet.getName() + '.pdf');
var pdfFile = DriveApp.createFile(blob); // PDFファイルをDriveに作成
// ②シート「請求書」から会社名と年月日を取得
var companyName = sheet.getRange('A3').getValue();
var invoiceDate = sheet.getRange('A5').getValue();
// ③会社名とシート「担当者情報」を比較し、担当者名とメールアドレスを取得
var contactSheet = ss.getSheetByName('担当者情報');
var contactData = contactSheet.getRange('A2:C' + contactSheet.getLastRow()).getValues();
var recipientEmail = '';
var recipientName = '';
for (var i = 0; i < contactData.length; i++) {
if (contactData[i][0] === companyName) {
recipientName = contactData[i][1];
recipientEmail = contactData[i][2];
break; // 一致したらループを抜ける
}
}
// ④メールの下書きを作成
if (recipientEmail) {
var subject = '請求書';
var body = recipientName + '様\n\nお世話になっております。\n請求書を送付します。\nご確認よろしくお願いします。';
// メールを下書きとして作成(送信はしない)
GmailApp.createDraft(recipientEmail, subject, body, {
attachments: [pdfFile.getAs(MimeType.PDF)] // PDFファイルを添付
});
SpreadsheetApp.getUi().alert('メールの下書きを作成しました。');
} else {
SpreadsheetApp.getUi().alert('担当者のメールアドレスが見つかりませんでした。');
}
}
これで準備は完了です。
メールの自動作成

請求書処理▶請求書PDF作成&メール送信を選択

処理が正常に完了しました。

Gmailに移動すると、下書きが作成されています。

宛先、件名、本文、添付ファイルを確認します。
会社別宛先の指定

シート「担当者情報」を参照してメールを作成します。
シート「請求書」の会社名をB株式会社で作成するとBさんのメールアドレス、C株式会社で作成するとCさんのメールアドレスに自動で変わります。
サンプルをダウンロードし、動作を確認してください。
PDF化とメールの下書き