# クラウド弁護士サンプル ###### tags: `情報共有` ## 流れ 1. 下記フォームに情報を入力し、送信する 2. 指定されたメールアドレスに名前と住所が記載されたPDFが添付される ## 申請書フォーム [URL](https://docs.google.com/forms/d/e/1FAIpQLSd4vZ4MMHNc0CPBkVX-WfbmMfATidKe9lJNL5RDng9TrAklRg/viewform) ## GoogleDviveフォルダ [URL](https://drive.google.com/drive/folders/1wvxI377cLlA7uI5JvifaeZzZiKX6dHG4) クラウド弁護士フォルダ内にあるので権限が必要です。 ## ソース ``` Google Apps Script function myFunction() { // テンプレートスプレッドシートID var tmplId = "1LCz442H2_zizw5SbrDjZgZhEzt6mldK5eLFuHVdE1k4"; // 回答用スプレッドシートID var ansId = "1aoDZ5rmngLqrnM4iWGMiG-4jZA8m-bXJFuQqHYFoMCo"; // 出力先フォルダID var folderId = "1yPAHfi2VV1-qT_dqVgeZH4aEOs6dJD1i"; // ファイル名 var date = new Date(); var fileName = Utilities.formatDate(date, 'Asia/Tokyo', 'yyyy-MM-dd:hh:mm:ss'); var tmpl = DriveApp.getFileById(tmplId); var folder = DriveApp.getFolderById(folderId); // テンプレートコピー var form = tmpl.makeCopy(fileName, folder); // 回答用スプレッドシートを開く var spreadsheet = SpreadsheetApp.openById(ansId); var data = spreadsheet.getSheetByName('フォームの回答 1'); // データ取得 var dataRange = data.getDataRange(); var dataRows = dataRange.getLastRow() - 1; var dataValues = dataRange.getValues();  var email = dataValues[dataRows][1] var name = dataValues[dataRows][2]; var addr = dataValues[dataRows][3]; // 申請書を開く var formId = form.getId(); var outputSs = SpreadsheetApp.openById(formId); var outputSheet = outputSs.getSheetByName('シート1'); // 入力値の設定 outputSheet.getRange("B3").setValue(name); outputSheet.getRange("B4").setValue(addr); // 書込確認 var rangechk = SpreadsheetApp.openById(formId).getRange("B4").getValue(); while (rangechk == ""){ rangechk = SpreadsheetApp.openById(formId).getRange("B4").getValue(); } // PDF作成 var url = "https://docs.google.com/spreadsheets/d/SSID/export?".replace("SSID", formId); var opts = { exportFormat: "pdf", format: "pdf", size: "A4", portrait: "true", fitw: "true", sheetnames: "false", printtitle: "false", pagenumbers: "false", gridlines: "false", fzr: "false", gid: outputSheet.getSheetId() }; var url_ext = []; for( optName in opts ){ url_ext.push( optName + "=" + opts[optName] ); } var options = url_ext.join("&"); var token = ScriptApp.getOAuthToken(); var response = UrlFetchApp.fetch(url + options, { headers: { "Authorization": "Bearer " + token } }); var blob = response.getBlob().setName(fileName + ".pdf"); folder.createFile(blob); // メール送信 GmailApp.sendEmail( // 宛先 email, // 件名 'テスト', // 本文 '添付ファイルをご確認下さい', // 添付ファイル {attachments: [blob]} ); } ```