【Google Apps Script(GAS)】顧客リスト分、Googleドキュメントを作成→PDF化してメール送付【視聴者リクエスト】
Googleアプリ操作の自動化が簡単にできるGoogle Apps Script(GAS)
これを抑えておけば業務効率がグッとアップします🙆♀️
今回は
・スプレッドシートの顧客リストから
・Googleドキュメントをカスタマイズして作成
・↑をPDFに変換して、メールに添付
👆を実現するスクリプトを作成しました🙆♀️
是非これを機会にGAS習得しちゃいましょう~~!
◎動画はこちら
◎スクリプト❶(ドキュメント生成)
function makeFile() {
//スプレッドシートから顧客一覧を取得
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var rows = sheet.getLastRow()-1; //1行目はカラム行のため-1
var datas = sheet.getRange(2,2,rows,3).getValues();
//テンプレートファイル・納品フォルダを取得
var template = DriveApp.getFileById("★ファイルIDを記載");
var folder = DriveApp.getFolderById("★フォルダIDを記載");
//各ファイルに対して繰り返し
datas.forEach(function(data){
//名前・郵便番号・住所を抜き出し
var name = data[0];
var postalCode = data[1];
var adress = data[2];
//ファイルを複製
var newFile = template.makeCopy(folder);
//ファイルIDを取得
var id = newFile.getId();
//ファイル名を変更
newFile.setName(`[${name} 様]ビジネスレター`);
//複製したファイルをドキュメントとして取得
var doc = DocumentApp.openById(id);
//ドキュメントの本文を取得
var body = doc.getBody();
//本文に入っている全ての段落を取得
var paragraphs = body.getParagraphs();
//各段落に対して繰り返し
paragraphs.forEach(function(paragraph){
var text = paragraph.getText();
//可変箇所を書き換え
if(text == "受取人名 様"){
paragraph.setText(`${name} 様`)
}
if(text == "郵便番号"){
paragraph.setText(postalCode);
}
if(text == "都道府県 市区町村 番地"){
paragraph.setText(adress);
}
});
});
}
◎スクリプト❷(pdf変換→メール添付)
//ドキュメントをPDF化して、メールに添付
function getPdf_makeMail() {
//フォルダを取得
var inputFolder = DriveApp.getFolderById("★フォルダIDを記載"); //ドキュメントが格納されているフォルダ
var outputFolder = DriveApp.getFolderById("★フォルダIDを記載"); //pdfを格納したいフォルダ
//フォルダから全てのファイルを取得
var files = inputFolder.getFiles();
//各ファイルに対して繰り返し
while(files.hasNext()){
//ファイルを取得
var file = files.next();
//ファイル情報を取得
var id = file.getId();
var fileName = file.getName();
//ファイル名から名前を抜き出し
var name = fileName.match(/.+]/)[0].replace("[","").replace("]","");
//ここからPDFファイルに変換する処理
//エクスポートurlを生成
var url = "https://docs.google.com/document/d/"+ id + "/export?&exportFormat=pdf&format=pdf";
//tokenを取得
var token = ScriptApp.getOAuthToken();
//urlfetchする際のoptionを宣言
var option = {
headers: {
'Authorization': 'Bearer ' + token
}
}
//urlfetch
var response = UrlFetchApp.fetch(url,option);
//urlfetchのレスポンスデータをblobクラスとして取得
var blob = response.getBlob();
//格納フォルダにpdfファイルを生成
var pdf = outputFolder.createFile(blob);
//ファイル名を変更
pdf.setName(`[${name}]ビジネスレター.pdf`);
//ここからメール下書き作成する処理
//件名を生成
var subject = `【ご送付】ビジネスレター_2021/10/20`;
//本文を生成
var body =
`${name}
お世話になっております。○○です。
今月分のビジネスレターを送付いたします。
ご査収ください。
引き続きよろしくお願いいたします。
○○`;
//メール作成する際のoptionを宣言
var option = {
"attachments":pdf
}
//メールを下書き作成
GmailApp.createDraft("sample@gamil.com",subject,body,option);
}
}
GASの基礎学習にはUdemyがおすすめです!(徹底解説してます!)