# クラウド弁護士サンプル
###### 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]}
);
}
```