見出し画像

【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がおすすめです!(徹底解説してます!)



いいなと思ったら応援しよう!